赞 | 5 |
VIP | 71 |
好人卡 | 22 |
积分 | 6 |
经验 | 32145 |
最后登录 | 2013-8-9 |
在线时间 | 184 小时 |
Lv2.观梦者 天仙
- 梦石
- 0
- 星屑
- 620
- 在线时间
- 184 小时
- 注册时间
- 2008-4-15
- 帖子
- 5023
|
我说错了,其实是第二层
地图绘制时,
有A图块的第一层和
B~E图块的第三层
还有一层就是自动阴影的第二层
事实上第二层绘制的是A图块的部分自动元件,
如下图:
从Game_Map的这段代码可以得知地图有三层
- for i in [2, 1, 0] # 由上層而下
- tile_id = @map.data[x, y, i] # 獲取圖塊 ID
- return false if tile_id == nil # 無法獲取圖塊:不可通行
- pass = @passages[tile_id] # 獲取通行屬性
- next if pass & 0x10 == 0x10 # ☆: 不影響通行判定
- return true if pass & flag == 0x00 # o: 可以通行
- return false if pass & flag == flag # x: 不可通行
- end
复制代码
贴一段代码
在地图上按下L键可以察看角色所在地图图块
- class Scene_Map
- alias passage_update update
- def update
- passage_update
- if Input.trigger?(Input::L)
- map_tile_id_0 = ($game_map.map.data[$game_player.x, $game_player.y, 0]-2000) / 48
- 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 = "0: #{map_tile_id_0.to_s} " +
- "1: #{map_tile_id_1.to_s} " +
- "2: #{map_tile_id_2.to_s}"
- p map_tile_ids
- end
- end
- end
- class Game_Map
- def map
- return @map
- end
- end
复制代码
还有一段国外脚本
可以把自动阴影清除
放在事件里使用
不过建议开新工程来试
- for x in 0...$game_map.data.xsize
- for y in 0...$game_map.data.ysize
- #oberes belegt?
- if $game_map.data[x,y,2] == 0
- $game_map.data[x,y,2] = $game_map.data[x,y,1]
- $game_map.data[x,y,1] = $game_map.data[x,y,0]
- $game_map.data[x,y,0] = 0
- end
- end
- end
复制代码 |
|