游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4681|回复: 12

A*寻路优化

[复制链接]

87

主题

790

帖子

806

积分

高级会员

Rank: 4

积分
806
QQ
发表于 2008-6-26 15:02:00 | 显示全部楼层 |阅读模式
下面是我游戏中用的A*算法
1000次独立寻路,目前在5格范围内,编译后需要200ms
不知道还能不能继续优化,最好能达到10格范围以上

sf_200862615214.rar

4.57 KB, 下载次数:

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2008-6-27 21:57:00 | 显示全部楼层

Re:A*寻路优化

技术贴咋没人顶呢?

61

主题

1429

帖子

1430

积分

金牌会员

Rank: 6Rank: 6

积分
1430
发表于 2008-6-28 00:12:00 | 显示全部楼层

Re:A*寻路优化

技术贴? 吵架的几个都是学C++,  哪里懂VB??

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2008-6-28 00:38:00 | 显示全部楼层

Re:A*寻路优化

楼上教训及时,生感自责

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2008-6-28 03:48:00 | 显示全部楼层

Re:A*寻路优化

大概看了下你的代码。

首先,在VB6中Class效率就不高。而且在这种很紧凑的算法中使用Class本身就有些匪夷所思。

你那个坐标类里面,首先Private了Variant型变量,就已经比较低效了。
结果后面还用了Property,那几乎就是说这种类不能用在任何高效算法中。

改用long类型的Type,访问速度至少可以快10倍。

其次你那个xy类,貌似就是要建一个队列?如果是那样的话请去学习数据结构队列这块,你的做法实在太低效了。

关于搜索主函数,大概看了下,眼花了[em7][em10]~
你的代码有点小恐怖诶。。
完全看不出AStar应有的结构。。至少没看到什么地方你对那个队列进行排序过。。另外你的程序中模块分工貌似也很奇怪,感觉逻辑比较混乱啊。

感觉应该有很多可以改进的地方。。
至少你的队列那里会耗掉很多时间。  

5

主题

972

帖子

975

积分

高级会员

Rank: 4

积分
975
发表于 2008-6-28 12:10:00 | 显示全部楼层

Re: A*寻路优化

我要思路,不要代码 [em22]

14

主题

96

帖子

124

积分

注册会员

Rank: 2

积分
124
QQ
发表于 2008-6-28 12:21:00 | 显示全部楼层

Re: Re: A*寻路优化

CLOD: Re: A*寻路优化

我要思路,不要代码 [em22]


[em20]去看看图论~~~
这个可是图的基本算法呀,启发式图搜索算法。

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2008-7-11 03:16:00 | 显示全部楼层

Re:A*寻路优化

用局部变量代替类的属性
用局部变量代替数组元素
用局部变量代替结构成员

270

主题

6442

帖子

6446

积分

论坛元老

Rank: 8Rank: 8

积分
6446
发表于 2008-7-11 08:33:00 | 显示全部楼层

Re: Re:A*寻路优化

psic: Re:A*寻路优化

用局部变量代替类的属性
用局部变量代替数组元素
用局部变量代替结构成员


我发觉我和你聊这么久,就这几句说的有道理。

87

主题

790

帖子

806

积分

高级会员

Rank: 4

积分
806
QQ
 楼主| 发表于 2008-7-11 12:51:00 | 显示全部楼层

Re: Re:A*寻路优化

sandy_zc_1: Re:A*寻路优化

大概看了下你的代码。

首先,在VB6中Class效率就不高。而且在这种很紧凑的算法中使用Class本身就有些匪夷...

我昨天用结构试了一下,效率更低,听说原因是结构作为函数参数传递时,需要深度拷贝,而类只是传递指针
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 18:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表