- 按键认证大神
- 728264
- 3512
- 18
- 1916 朵
- 27464 个
- 1728 个
- 82980
- 2011-08-04
|
1#
t
T
发表于 2022-04-18 23:05
|
|只看楼主
在没有快捷拾取的游戏中,我们一般会选择查找物品的图片和文字,然后通过键盘按键或者鼠标点击逐渐靠近物品进行拾取操作。但是无论找字还是找图,它返回的都是屏幕坐标,而不是游戏内的真实坐标,这样会导致如果遇到障碍或者物品名字较长的情况会无法到达或位置跑偏。今天我们要说的就是,如何利用人物真实坐标,来转换物品的真实坐标,有了真实坐标,人物就可以准确地到达指定坐标。思路:以本游戏为例,人物脚下物品屏幕坐标为510, 280, 557, 292,物品与物品之间的屏幕坐标x间隔为48,物品与物品之间的屏幕坐标y间隔为32。以人物当前屏幕坐标为起点,人物周围1格内物品的左、上、右、下、左上、右上、左下、右下的屏幕坐标分别为(- 1 * x间隔 , 0 * y间隔)、(0 * x间隔, - 1 * y间隔 )、(1 * x间隔, 0 * y间隔)、(0 * x间隔, 1 * y间隔 )、(- 1 * x间隔 , - 1 * y间隔 )、(1 * x间隔, - 1 * y间隔 )、(- 1 * x间隔 , 1 * y间隔)、(1 * x间隔, 1 * y隔)。对应的以人物当前真实坐标为起点,物品的真实坐标分别为(- 1 , 0)、(0, - 1 )、(1, 0)、(0, 1 )、(- 1 , - 1 )、(1, - 1 )、(- 1 , 1)、(1, 1)。以此类推,想要获取人物周围N格内的物品的坐标,只需要将1换成N,即可通过人物屏幕坐标、真实坐标转换物品屏幕坐标、真实坐标。坐标示意图: 查找演示图: 调试代码:- Dim 排序前,排序后
- 排序前 = 查找人物周围的物品位置(723, 312, 8, "恶魔|长袍|龙纹|心灵|手镯|灯笼|项链|生命|骑士|灵魂|幽灵|手套|战衣|骷髅|头盔|天珠|战神|盔甲|记忆|三眼|铂金|戒指", "ffffff|00ff00")
- 排序后 = 坐标排序(723, 312, 排序前)
- TracePrint "排序前:" & 排序前
- TracePrint "排序后:" & 排序后
复制代码 调试结果:排序前:铂金戒指,723,312|幽灵手套,723,310|龙纹,723,306|骷髅头盔,725,312|骑士手镯,722,310|灯笼项链,722,308|生命项链,721,309|心灵手镯,721,308|魔长袍,721,306|灵战衣,719,310|灵魂项链,724,310|骑士手镯,725,308|三眼手镯,728,311|天珠项链,721,314|神盔甲,725,316|记忆头盔,727,314排序后: 铂金戒指,723,312|幽灵手套,723,310|骷髅头盔,725,312|骑士手镯,722,310|灵魂项链,724,310|天珠项链,721,314|灯笼项链,722,308|生命项链,721,309|龙纹,723,306|心灵手镯,721,308|灵战衣,719,310|骑士手镯,725,308|三眼手镯,728,311|神盔甲,725,316|记忆头盔,727,314|魔长袍,721,306源码:
源文件:
|