TC官方合作论坛

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

无小地图,无自动寻路时, 利用坐标进行移动的"原理"!

  [复制链接]
跳转到指定楼层
楼主
发表于 2012-12-6 21:12:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
目前大部分游戏都有自动寻路,但是某些游戏还是没有自动寻路,并且,没法点击小地图移动,这样的情况改如何处理?
这个教程就讲一下以上描述的状态下怎么进行自动移动,并且精准移动!

声明:这种方法不是所有游戏都适合,只是一种思路,本人自己研究,如有雷同,纯属巧合!

用途:重复行的来回移动,比如从NPC-A移动到NPC-B
两个NPC之间,或者多个之间来会移动,意思就是路线固定,没有太大变化,并且在到达某个目的地时可以进行误差更正

准备:
1.有坐标显示
2.视角固定

用到知识:建立字库,找字,操作txt,字符串操作,大小地图坐标转换
(如果上面说的不能熟练运用,那还是不要往下看了~~)

原理:
1.首先要准备一段代码,就是利用大漠,或者TS插件,循环记录路过的坐标,到达目的地后,把记录的坐标进行保存
2.主体代码,要能将记录到的坐标进行转换,判断目前人物位置
如何判断?
读出人物当前坐标,然后和记录的坐标进行比较,在允许范围内,选择离当前最近的坐标作为基点
这时要对鼠标移动位置进行转换了,把目的坐标转换为鼠标移动的坐标
接着就是移动鼠标点击移动
循环以上代码,让人物按照预定的坐标进行移动


游客,如果您要查看本帖隐藏内容请回复

本帖子中包含更多资源

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

x
回复

使用道具 举报

558#
发表于 2018-9-4 14:26:24 | 只看该作者
动寻路时, 利用坐标进行移动的"原理"! [修改]
回复 支持 反对

使用道具 举报

557#
发表于 2018-8-17 20:20:45 | 只看该作者
jjjjjjjjjjj
回复 支持 反对

使用道具 举报

556#
发表于 2018-7-31 15:18:08 | 只看该作者
是的撒打算打打
回复 支持 反对

使用道具 举报

555#
发表于 2018-7-22 04:09:55 | 只看该作者
看看
回复

使用道具 举报

554#
发表于 2018-5-3 08:41:22 | 只看该作者
看看是什么
回复 支持 反对

使用道具 举报

553#
发表于 2018-4-28 00:53:34 | 只看该作者
var x,y,a,b,角度计算
   
    if(移动点x坐标==中心点x坐标)
        if(移动点y坐标>中心点y坐标)
            //↑
            角度计算 = 0
        else
            //↓
            角度计算 = 180
        endif
        
        if(移动点y坐标==中心点y坐标)
            if(移动点x坐标>中心点x坐标)
                //→
                角度计算 = 90
            else
                //←
                角度计算 = 270
            endif
        endif
    else
        
        if(移动点x坐标>中心点x坐标 && 移动点y坐标>中心点y坐标)
            //↘
            b = 90
        endif
        if(移动点x坐标>中心点x坐标 && 移动点y坐标<中心点y坐标)
            //↗
            b = 0
        endif
        if(移动点x坐标<中心点x坐标 && 移动点y坐标<中心点y坐标)
            //↖
            b = 270
        endif
        if(移动点x坐标<中心点x坐标 && 移动点y坐标>中心点y坐标)
            //↙
            b = 180
        endif
        
        x = 数学.绝对值(移动点y坐标 - 中心点y坐标)
        y = 数学.绝对值(移动点x坐标 - 中心点x坐标)  
        
        if(x>0)
            //1弧度约为57.3
            a = math.atan(y / x)
            角度计算 = 类型.取整(a * 57.3) + b
            //角度计算 = fix(a/(3.14159265/180))
        endif
    endif
   
    返回 角度计算
回复 支持 反对

使用道具 举报

552#
发表于 2018-4-23 17:53:09 | 只看该作者

支持下。
回复

使用道具 举报

551#
发表于 2018-4-12 23:51:27 | 只看该作者
学习
回复

使用道具 举报

550#
发表于 2018-4-6 19:09:38 | 只看该作者
ddddddd
回复

使用道具 举报

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

本版积分规则

关闭

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

关闭

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

GMT+8, 2025-9-17 18:14 , Processed in 0.126142 second(s), 23 queries .

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

© 2001-2013 Comsenz Inc.

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