Project1

标题: 如何判断角色脚下的图块? [打印本页]

作者: 945127391    时间: 2011-10-31 18:58
标题: 如何判断角色脚下的图块?
就是要获取当前角色脚下的是什么图块,有什么办法?感激不尽啊!!!dsu_plus_rewardpost_czw
作者: 怪蜀黍    时间: 2011-10-31 20:39
我曾经发过一篇教程,可能可以解决您的问题:
http://rpg.blue/thread-198176-1-1.html
如果您没看懂或者觉得复杂,我就说一下关键的一句脚本:
if $game_map.data[x, y, 0] == 1631  
  ……
end
至于1631的意义,我在教程里已经说了,请您去看一看吧。
教程末尾的的粉红色的“附加注释”可以举一反三,可以解决您提出的问题,把1631改成您所需要的图块代号即可。

作者: Eienshinken    时间: 2011-11-2 04:08
判断是什么图块应该没有这个方法。但是有判断角色当前所站位置的地图图块的ID的办法。
这个貌似是雪流星写的脚本 你进游戏的时候 站在地图上任意图块按键盘的D键(VX默认按键)就能获取第一层和第二层的地图图块ID了。 你看对你有没有帮助
  1. class Game_Map
  2.   def get_tile_id(x, y)
  3.     a = data[x, y, 0]
  4.     return 0 unless a
  5.     a-=2000
  6.     map_tile_id_0 = (a >= 0) ? a/48 : (a+593)
  7.     map_tile_id_1 = (data[x, y, 1]-2000) / 48
  8.     map_tile_id_2 = (data[x, y, 2])
  9.          
  10.     map_tile_id_0 = 0 if map_tile_id_0 == -42 # A
  11.     map_tile_id_1 = 0 if map_tile_id_1 == -42 # I
  12.     map_tile_id_2 = 0 if map_tile_id_2 == -42 # B~E
  13.    
  14.     # 图块 ID 矫正
  15.     map_tile_id_0 = map_tile_id_1 if map_tile_id_1 > 0
  16.     unless @events.nil?
  17.       for event in @events.values
  18.         if event.pos?(x, y) and event.tile_id > 0
  19.           # 若是事件使用地图元件,使用该地图元件的ID
  20.           map_tile_id_2 = event.tile_id
  21.         end
  22.       end
  23.     end
  24.     # 返回 [底层ID, 上层ID]
  25.     return [map_tile_id_0, map_tile_id_2]
  26.   end
  27. end
  28. class Scene_Map < Scene_Base
  29.   alias get_map_id_update update
  30.   def update
  31.     get_map_id_update
  32.     if Input.trigger?(Input::Z)
  33.       p $game_map.get_tile_id($game_player.x, $game_player.y)
  34.     end
  35.   end
  36. end
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1