TC官方合作论坛

 找回密码
 立即注册
查看: 731|回复: 9
打印 上一主题 下一主题

[已解决] 不成熟的想法,求大神帮助

[复制链接]
跳转到指定楼层
楼主
发表于 2012-6-10 08:11:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
突发奇想,发一个移动人物到所要去的坐标的笨思路,适合一些没有自动寻路的游戏,请大神们给与指点,只是想法,不成熟没实践,因为有的命令写法我还没学到呢,呵呵
整型 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
循环结束
回复

使用道具 举报

9#
发表于 2012-6-10 13:10:31 | 只看该作者
思路基本正确

问题一 游戏坐标与屏幕坐标是不一致的 比如 人物坐标为100,100 目的坐标为200,200 鼠标点击坐标为241,321,人物移动至目的坐标,你的算法就无效了,所以你还得写一个游戏坐标与屏幕坐标的换算算法
问题二 障碍,很多游戏没有自动寻路,那么鼠标寻路的IA也很差的,极容易被障碍卡住,比如石头,树丛,河流等,特别是目的坐标不在窗口内,你点击窗口最边移动人物,极容易出现被障碍卡住的情况

自动寻路可以参考A星算法,论坛有帖详细介绍,或者找度娘,还有拓扑算法等,基本思路都是通过二维图得到节点与节点的连接情况,通过算法得出目前节点与目地节点的最短路程!
回复 支持 反对

使用道具 举报

沙发
发表于 2012-6-10 08:13:25 | 只看该作者
我抢
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2012-6-10 08:14:06 | 只看该作者
我板凳
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2012-6-10 08:15:57 | 只看该作者
没发全,晕
整型 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)
鼠标点击
用大漠识别字符串,分割\转换,得到你需要的 人物坐标值
循环结束
回复 支持 反对

使用道具 举报

板桥 该用户已被删除
5#
发表于 2012-6-10 08:23:28 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2012-6-10 08:29:32 | 只看该作者
判断越界
x1=xz+x
y1=yz+y
循环(x1大于屏幕x的最大值)
x1=x1/2
循环结束
............
鼠标移动(x+x1,y+y1)
回复 支持 反对

使用道具 举报

7#
发表于 2012-6-10 08:32:38 | 只看该作者
回复 6楼8168333的帖子

我的思路是,如果越界,就移动自定义的坐标,比如,如果目的坐标超过右上角的话,就移动右上角屏幕内某一个点.
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2012-6-10 08:33:23 | 只看该作者
想小于屏幕x的最小值怎么写
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2012-6-10 13:32:16 | 只看该作者
谢谢冷月,我看到过介绍A星算法的,可我现在的水平还解除不了那个,我记住了,等我到那个程度再去学习,我考虑的太简单了,呵呵
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-10-15 07:33 , Processed in 0.143190 second(s), 25 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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