查看: 2220|回复: 2

[已经解决] 如何判定面前的地图块?

[复制链接]
梦石
0
星屑
50
在线时间
51 小时
注册时间
2010-7-13
回帖
17
发表于 2013-9-21 21:11:28 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
比如有一个物品钓竿,必须要面对水面使用这个物品才有效果,该如何判定面前是水面??谢谢> <
梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2013-9-22 09:25:50 | 显示全部楼层
楼主需要把下面几行代码粘贴到脚本编辑器Main组之前,然后进行如下操作即可。
  1. class Game_Character
  2.   def terrain_tag_ahead
  3.     new_x = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
  4.     new_y = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
  5.     return $game_map.terrain_tag(new_x,new_y)
  6.   end
  7. end
复制代码
脚本的作用是判断角色面前的地形标志。
1.将脚本复制到脚本编辑器Main组之前
2.打开数据库,选择图块,看到第一行第二个图块代表水面,将其地形标志设为1

图块

图块

3.在数据库中,制作一个公共事件,事件的指令如下
$t = $game_player.terrain_tag_ahead
条件分歧 $t == 1
XXXXXXXX
除此以外的场合
XXXXXXXX

公共事件

公共事件

4.把物品的处理链接到这个公共事件上,便大功告成。
注意:取得地形标志的时候,是取得最上层元件的地形标志。水面一般是第一层,因此这种方法成功,水面上面相同位置(也就是第二层和第三层)不能有别的元件,否则会失败。
      一旦按照这种方法设定,所有地形标志为1的图块,函数都会判定“这是一个水面”,如果想要设置别的地形标志,请选择别的序号。(游戏中所有元件的默认地形标志是0,
      地形标志可以设置为0~7)

评分

参与人数 1星屑 +154 收起 理由
弗雷德 + 154 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
51 小时
注册时间
2010-7-13
回帖
17
 楼主| 发表于 2013-9-24 20:00:08 | 显示全部楼层
RyanBern 发表于 2013-9-22 09:25
楼主需要把下面几行代码粘贴到脚本编辑器Main组之前,然后进行如下操作即可。脚本的作用是判断角色面前的地 ...

啊0v0非常感谢~!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部