TC官方合作论坛

 找回密码
 立即注册
查看: 1533|回复: 8

[其他] 帮我看看这段代码,给个想法

[复制链接]
发表于 2015-5-8 15:41:14 | 显示全部楼层 |阅读模式

马上加入TC

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

x
本帖最后由 lytslyts 于 2015-5-8 15:49 编辑

有个游戏,这个游戏没有坐标,人物是定点在屏幕中心的,中心点为400,235
我用的是找NPC的名字,找到后移动过去
每次走动的话 目标的XY值都会发生变化
用中心点跟NPC的XY坐标 之间的差值做比较,来判定距离,
距离近了就按Esc退出行走,距离远了就继续行走
不断的读取目标的XY值来判定距离
这个方法可行

可是有一个问题,如果中间与东西或者其他玩家卡主了就不走动了,
所以我想加一个判定卡位的功能
我自己有一个想法,但是不知道怎么实现,不知道该怎么写
想法是这样的
我用 中心点跟目标之间 的 距离值 有没有 发生变化 来判定是否卡位
如果 两者之前的 距离值 没有发生变化,说明卡住了,需要其他的操作比如说走位
但我不知道应该怎么写判断 两者之前的 距离值 没有发生变化
新手刚看视频学了几天
请高手给点指教,谢谢了



////调用功能的时候传入A,B,  A是目标点的鼠标X值,B是目标点的鼠标Y值
功能 距离判定(A,B)////中心点400,235
         调试输出("计算距离")
          变量 A差值,B差值
          距离开关 = 假 ////我做了这个开关,声明了全局变量,在调用这个功能的时候用来判定
          A差值 = 100
          B差值 = 100

    如果(400 >= A)
          A差值 = 400 - A
    否则
          A差值 = A - 400
    结束

    如果(235 >= B)
          B差值 = 235 - B        
    否则
          B差值 = B - 235
    结束   
   
    如果(A差值 <= 60 && B差值 <= 45)///////这个距离可以点到NPC
          调试输出("A差值:" & A差值 & "," & "B差值:" & B差值)
          dm.KeyPress(27)/////到达距离后按Esc停止移动
          等待(50)
          dm.KeyPress(27)
          距离开关 =
    否则
          调试输出("A差值:" & A差值 & "," & "B差值:" & B差值)
          距离开关 =
    结束
结束

回复

使用道具 举报

发表于 2015-5-8 16:34:00 | 显示全部楼层
找出卡住时候的特征,跟找到NPC时的特征对比一下,不一样就继续走路,不知道你这是啥游戏,思路不清楚哦
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-8 16:53:17 | 显示全部楼层
laowantong 发表于 2015-5-8 16:34
找出卡住时候的特征,跟找到NPC时的特征对比一下,不一样就继续走路,不知道你这是啥游戏,思路不清楚哦 ...

没有特征,卡住了就是两者之间的距离没有发生变化,
比如我向你走过去,我们之间的距离就会缩短,
如果我碰到墙了走不到你面前了我们之间的距离就没有变化,因为我停住了
我想知道怎么计算 距离 有没有变化
先运行一次 计算距离,取值 第一次
然后行走,再计算一次距离,取值第二次
最后比较两次的距离,如果 第二次的值=第一次 说明没变化,也就是没走动
这个想法我觉得可行
可是不知道怎么写
回复 支持 反对

使用道具 举报

发表于 2015-5-8 17:02:31 | 显示全部楼层
啥游戏
回复

使用道具 举报

 楼主| 发表于 2015-5-8 17:29:27 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-8 17:35:54 | 显示全部楼层

谢了哥们
我自己搞定了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-8 17:38:02 | 显示全部楼层
lytslyts 发表于 2015-5-8 17:35
谢了哥们
我自己搞定了

我是这样解决的
找色 得到第一次坐标值
第一次计算距离 取值
移动 改变坐标
找色 得到第二次坐标值
第二次计算距离 取值
然后第一次跟第二次的 取值相比较
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-8 18:02:31 | 显示全部楼层
lytslyts 发表于 2015-5-8 17:38
我是这样解决的
找色 得到第一次坐标值
第一次计算距离 取值

自己傻B了,思路死了
又想到一个想法
取色 ,取地板的颜色
先取色一次
走动
再取色一次
两次对比,如果两次颜色一样说明没有移动,卡主了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-8 18:03:03 | 显示全部楼层

自己傻B了,思路死了
又想到一个想法
取色 ,取地板的颜色
先取色一次
走动
再取色一次
两次对比,如果两次颜色一样说明没有移动,卡主了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-6-3 10:14 , Processed in 0.038778 second(s), 22 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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