赞 | 5 |
VIP | 71 |
好人卡 | 22 |
积分 | 6 |
经验 | 32145 |
最后登录 | 2013-8-9 |
在线时间 | 184 小时 |
Lv2.观梦者 天仙
- 梦石
- 0
- 星屑
- 620
- 在线时间
- 184 小时
- 注册时间
- 2008-4-15
- 帖子
- 5023
|
美獸有寫一個計算圖塊ID的腳本
要找一下
我有寫一個,不過不完美,A5的部分計算有點問題
等我修改一下
- class Scene_Map
- alias passage_update update
- def update
- passage_update
- if Input.trigger?(Input::L)
- a = $game_map.map.data[$game_player.x, $game_player.y, 0]-2000
- map_tile_id_0 = (a >= 0) ? a/48 : (a+593)
- map_tile_id_1 = ($game_map.map.data[$game_player.x, $game_player.y, 1]-2000) / 48
- map_tile_id_2 = ($game_map.map.data[$game_player.x, $game_player.y, 2]+1)
-
- map_tile_id_0 = 0 if map_tile_id_0 == -42
- map_tile_id_1 = 0 if map_tile_id_1 == -42
- map_tile_id_2 = 0 if map_tile_id_2 == -42
- map_tile_ids = "A: #{map_tile_id_0.to_s} " +
- "1: #{map_tile_id_1.to_s} " +
- "B~E: #{map_tile_id_2.to_s}"
- p map_tile_ids
- end
- end
- end
- class Game_Map
- def map
- return @map
- end
- end
复制代码
修改完畢
原理是這樣的:
每個原件在tilemap裡面都有一個編號
計算之後可以得到該原件在圖塊裡面的相對對位置
A圖塊算一張(1~256)
B~E整個算一張(1~256、257~512、513~768、769~1024)
還有一個在A層和B~E層的是用來繪製像深海、欄杆、樹木
這些以另外一個A層原件為底的自動元件 |
|