TC官方合作论坛
标题:
不成熟的想法,求大神帮助
[打印本页]
作者:
8168333
时间:
2012-6-10 08:11
标题:
不成熟的想法,求大神帮助
突发奇想,发一个移动人物到所要去的坐标的笨思路,适合一些没有自动寻路的游戏,请大神们给与指点,只是想法,不成熟没实践,因为有的命令写法我还没学到呢,呵呵
整型 xx,yy//目的地坐标
整型 x,y //人物坐标
整型 xz,yz//距离差
//游戏基本都会有一个小地图,那里会有人物所在地点名称及坐标值
//屏蔽地图上的人物和地摊
循环(x不等于xx与y不等于yy)
用大漠识别字符串,分割\转换,得到你需要的 人物坐标值
xz=xx-x
yz=yy-y
//这里还要加一个判断,就是目的地坐标不在地图里越界了
循环(zx大于屏幕x的最大值)
zx=zx/2
循环结束
循环(yx大于屏幕x的最大值)
yx=yx/2
循环结束
作者:
TC兔子
时间:
2012-6-10 08:13
我抢
作者:
8168333
时间:
2012-6-10 08:14
我板凳
作者:
8168333
时间:
2012-6-10 08:15
没发全,晕
整型 xx,yy//目的地坐标
整型 x,y //人物坐标
整型 xz,yz//距离差
//游戏基本都会有一个小地图,那里会有人物所在地点名称及坐标值
//屏蔽地图上的人物和地摊
循环(x不等于xx与y不等于yy)
用大漠识别字符串,分割\转换,得到你需要的 人物坐标值
xz=xx-x
yz=yy-y
//这里还要加一个判断,就是目的地坐标不在地图里越界了
循环(zx大于屏幕x的最大值)
zx=zx/2
循环结束
循环(yx大于屏幕x的最大值)
yx=yx/2
循环结束
鼠标移动(x+zx,y+yz)
鼠标点击
用大漠识别字符串,分割\转换,得到你需要的 人物坐标值
循环结束
作者:
板桥
时间:
2012-6-10 08:23
提示:
作者被禁止或删除 内容自动屏蔽
作者:
8168333
时间:
2012-6-10 08:29
判断越界
x1=xz+x
y1=yz+y
循环(x1大于屏幕x的最大值)
x1=x1/2
循环结束
............
鼠标移动(x+x1,y+y1)
作者:
TC兔子
时间:
2012-6-10 08:32
回复
6楼
8168333
的帖子
我的思路是,如果越界,就移动自定义的坐标,比如,如果目的坐标超过右上角的话,就移动右上角屏幕内某一个点.
作者:
8168333
时间:
2012-6-10 08:33
想小于屏幕x的最小值怎么写
作者:
冷月无痕
时间:
2012-6-10 13:10
思路基本正确
问题一 游戏坐标与屏幕坐标是不一致的 比如 人物坐标为100,100 目的坐标为200,200 鼠标点击坐标为241,321,人物移动至目的坐标,你的算法就无效了,所以你还得写一个游戏坐标与屏幕坐标的换算算法
问题二 障碍,很多游戏没有自动寻路,那么鼠标寻路的IA也很差的,极容易被障碍卡住,比如石头,树丛,河流等,特别是目的坐标不在窗口内,你点击窗口最边移动人物,极容易出现被障碍卡住的情况
自动寻路可以参考A星算法,论坛有帖详细介绍,或者找度娘,还有拓扑算法等,基本思路都是通过二维图得到节点与节点的连接情况,通过算法得出目前节点与目地节点的最短路程!
作者:
8168333
时间:
2012-6-10 13:32
谢谢冷月,我看到过介绍A星算法的,可我现在的水平还解除不了那个,我记住了,等我到那个程度再去学习,我考虑的太简单了,呵呵
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1