赞 | 77 |
VIP | 0 |
好人卡 | 0 |
积分 | 146 |
经验 | 0 |
最后登录 | 2024-11-14 |
在线时间 | 2149 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 14585
- 在线时间
- 2149 小时
- 注册时间
- 2016-9-20
- 帖子
- 859
|
本帖最后由 ppspssss 于 2021-2-16 20:36 编辑
这个我想过研究一个类似放置的游戏类,比如放置家具, 塔防遊戏 所以研究过 看來Hello``Bubble也有一些研究,感覺你熱心回答
这个楼主想要知道这个原理, 我就觉得不应该去理解这些难以理解的,要完全了解RM内置的移动方式才行, 除非像我又或者Hello``Bubble 他研究比如塔防游戏才用到吧?
-----------------------------
如果地图没移动过, 还是对的, 可是當角色地图走动地图一格后,鼠标个获取的格子始终向后偏移了半格, 為什么呢
看在 Game_Player里的CENTER_X
####
CENTER_X = (320 - 16) * 4 # 画面中央的 X 坐标 * 4
CENTER_Y = (240 - 16) * 4 # 画面中央的 Y 坐标 * 4
####
可以看出是減了半格(是32的一半), Y軸实際没有影响, 因此要X軸加条件一下
$mx,$my=Mouse.get_mouse
if $game_map.display_x >= 64 #16*128得出来64(半格)
mx = $mx+16
end
$map_mx = $game_map.display_x / 128 + mx / 32
$map_my = $game_map.display_y / 128 + $my / 32
然后人物移动多过地图也能正确不偏半格了
-----------------
另外 , 一格像素是32不是128 , 那为什么要乘4变成128呢呢, 我猜測(如错误请纠正我) : 这样可令人物事件移动速度的计算速度下限调低, 这样的话就不用额外寫计数器比较麻烦, 因为一帧固定加1, 除4令下限变低,使得移动所需的計数增加至4倍, 令主角及事件可以更慢的速度移动, 那么结论:实际计算是移动了128个单位, 实际显示則除4得出32个单位 |
|