TC官方合作论坛

 找回密码
 立即注册
楼主: jsnj_wjq82

[已解决] 人物方向移动的问题

[复制链接]
 楼主| 发表于 2013-10-30 15:51:41 | 显示全部楼层
星.月 发表于 2013-10-30 15:41
循环里加个判断,是不是到了你要的位置,如果到了,就跳出循环

循环

你帮我把发的那段代码改一下,我试试看,我之前在循环里面加个判断,人物会跟随实际的鼠标指针跑
回复 支持 反对

使用道具 举报

发表于 2013-10-30 16:00:33 | 显示全部楼层
jsnj_wjq82 发表于 2013-10-30 15:51
你帮我把发的那段代码改一下,我试试看,我之前在循环里面加个判断,人物会跟随实际的鼠标指针跑 ...

循环(真)
    dm_ret=dm.FindPic(369,188,426,206,"魔王神道1.bmp","000000",0.9,0,intX,intY)
    如果(dm_ret>=0)
        变量 x坐标,y坐标
        窗口句柄=窗口.找到窗口("legend of mir2")
        窗口.屏幕转窗口(窗口句柄,x坐标,y坐标,x坐标,y坐标)
        dm.MoveTo(400,100)     //后台鼠标移动到人物上面坐标的位置        
        dm.RightDown()            //后台鼠标一直按住右键,也就是人物跑到
        辅助.等待(100)
        dm_ret=dm.FindPic(369,188,426,206,"到达终点.bmp","000000",0.9,0,intX,intY)//这里自己再截一张到达终点时的图,作判断是不是到了
        如果(intX>=0)//如果到了终点,则跳出当前循环,进行其他的操作
            跳出
        如果结束
    如果结束
循环结束
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-30 16:11:40 | 显示全部楼层
星.月 发表于 2013-10-30 16:00
循环(真)
    dm_ret=dm.FindPic(369,188,426,206,"魔王神道1.bmp","000000",0.9,0,intX,intY)
    如果( ...

窗口.屏幕转窗口(窗口句柄,x坐标,y坐标,x坐标,y坐标),这段代码用的对吗?
回复 支持 反对

使用道具 举报

发表于 2013-10-30 21:21:51 | 显示全部楼层
jsnj_wjq82 发表于 2013-10-30 16:11
窗口.屏幕转窗口(窗口句柄,x坐标,y坐标,x坐标,y坐标),这段代码用的对吗? ...

都用了后台了,感觉没用上
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-2 16:47:02 | 显示全部楼层
jsnj_wjq82 发表于 2013-10-30 15:47
程序本身我也加了个线程开启,后台循环找图一直往上,不知道如何让人物暂停或者停止? ...

又有个问题像你请教一下了,我做好了上下左右几个方向的移动,人物坐标(也就是实际地图坐标),现在我想读取txt文本中的坐标,让人物自己选择方向移动,这个怎么做?
例如txt文档坐标分别为:
100  200
200  300
300  500
700  800
我实际人物坐标是200 600,这个应该怎么做?用选择语句还是用什么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-2 16:49:59 | 显示全部楼层
jsnj_wjq82 发表于 2013-11-2 16:47
又有个问题像你请教一下了,我做好了上下左右几个方向的移动,人物坐标(也就是实际地图坐标),现在我想读 ...

单纯的不用鼠标,用大漠是可以能上下左右移动找方向了,代码测试也可以运行,现在就是想根据txt文档中坐标,让人物自己选择是哪个方向移动?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-2 16:55:18 | 显示全部楼层
星.月 发表于 2013-10-30 21:21
都用了后台了,感觉没用上

这个是根据txt中坐标,可以上移动的代码:
循环(真)
            图像序号=图像.找图(0,0,1440,900,"rc:坐标2.bmp",#102030,1.0,0,图片X坐标,图片Y坐标)
            //辅助.消息框(图像序号)
            如果(图像序号>=0)
                //如果(dm_ret1>=0)
               
                ////辅助.消息框("找到图片")
                //调试输出("坐标小于读取坐标")
                调试输出(图像序号)
               
                ////dm.RightUp()
               
               
                dm.LeftUp()
                跳出
               
            否则
               
                如果(获得x坐标==x坐标&&获得y坐标>y坐标)
                    移动.上移动()  
                    //dm.MoveToEx(intX,intY,10,10)
                否则
                    
                    
                    跳出
                    //辅助.消息框("坐标小")
                    
                    //dm.MoveTo(intX,intY)
                    //dm.LeftClick()
                    
                    
                    //dm_ret=dm.FindPic(369,188,426,206,"苍月岛位置.bmp","000000",0.9,0,intX,intY)//这里自己再截一张到达终点时的图,作判断是不是到了
                    //如果(dm_ret>=0)//如果到了终点,则跳出当前循环,进行其他的操作
                    //跳出
                如果结束
               
               
               
            如果结束
        循环结束
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-2 16:56:16 | 显示全部楼层
jsnj_wjq82 发表于 2013-11-2 16:49
单纯的不用鼠标,用大漠是可以能上下左右移动找方向了,代码测试也可以运行,现在就是想根据txt文档中坐 ...

循环(真)
            图像序号=图像.找图(0,0,1440,900,"rc:坐标2.bmp",#102030,1.0,0,图片X坐标,图片Y坐标)
            
            如果(图像序号>=0)
           
               
                调试输出(图像序号)
               
              
               
                dm.LeftUp()
                跳出
               
            否则
               
                如果(获得x坐标==x坐标&&获得y坐标>y坐标)
                    移动.上移动()  
                  
                否则
                    
                    
                    跳出
                  
                    
                    
                    
            
                如果结束
               
               
               
            如果结束
        循环结束
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-2 16:56:59 | 显示全部楼层
星.月 发表于 2013-10-30 21:21
都用了后台了,感觉没用上

但是,如果下移动,左右移动,怎么选择呢?
回复 支持 反对

使用道具 举报

发表于 2013-11-2 17:14:35 | 显示全部楼层
jsnj_wjq82 发表于 2013-11-2 16:56
但是,如果下移动,左右移动,怎么选择呢?

寻路的方法,有文本文件中写好路径,然后让人物按照你的路径来走。比如你起点是100,100,终点是600,200,文件中就可以这样写

100,100
105,103
110,106
……
中间有障碍物的,注意绕路

代码中的思路是这样:读取文件中的坐标,分出x和y,获取游戏中人物的当前坐标(用找字),对比人物坐标和文件中的坐标,人物坐标和文件坐标有差别,则点击进行人物移动,两个坐标相同,则说明到了,判断下面是不是还有坐标,还有就再点,再判断,直到到达你的终点
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-9-23 09:59 , Processed in 0.038893 second(s), 20 queries .

Powered by 海安简单软件服务部

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

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