Project1

标题: 如何用脚本让事件走动 [打印本页]

作者: 熊的选民    时间: 2010-7-22 09:28
标题: 如何用脚本让事件走动
本帖最后由 熊的选民 于 2010-7-23 12:13 编辑

我在论坛上搜索“脚本”“移动”,把相关帖子都看了一遍,也没找到答案
event.moveto(x, y) #这个有效,事件瞬移了
event.move_forward #这个无效,事件毫无反应
请问怎么才能让事件走动(不是瞬移)?
作者: 云心    时间: 2010-7-22 13:21
在Game_Character 3里有
def move_down
def move_left
等几个函数直接调用就行了
大概
作者: SailCat    时间: 2010-7-22 13:44
设置事件的移动路径为自定义,然后在里面搞脚本
作者: 无心孤云    时间: 2010-7-22 14:21
事件走动可以不用脚本啊。。。。。
直接不就有个移动功能么?无论是随机走。还是自定义都是可以扣选的。。。
恩。就跟制作一个走动的NPC是一样的
作者: wingtang5    时间: 2010-7-22 14:25
直接在事件移动方式设置。
作者: 越前リョーマ    时间: 2010-7-22 15:03
一定要用脚本的话,我有个办法。
$game_temp.common_event_id = 编号
这个可以调用公共事件,里面用事件写移动事件。不过记得加上移动后等待。

如果经常用的话,你也可以做成4个公共事件,每个都代表一个方向的移动,然后用执行公共事件的办法串联起来……
作者: 熊的选民    时间: 2010-7-22 18:58
因为我要让事件朝另一个事件移动,而另一个事件的位置不是固定的,所以才用脚本。有人知道为什么我的方法不行吗?如果实在无法实现,我可以试一下6楼的办法
作者: 越前リョーマ    时间: 2010-7-22 20:06
其实如果你知道目标的坐标的话可以用这个:
http://rpg.blue/htm/Topic_27070.htm
作者: 熊的选民    时间: 2010-7-23 06:25
其实我只想让目标移动一格,但目前连转一下身都无法实现。难道要想让它移动必须写大段函数?我觉得这个功能应该很常用才对,但在论坛上却搜不到实现方法。
另外忘了说,$game_player.move_down是有效的。这些移动函数对主角有效,对事件就不行
作者: 火ZHI意志    时间: 2010-7-23 06:28
本帖最后由 火ZHI意志 于 2010-7-23 06:43 编辑
  1. $game_map.events[X].move_down
复制代码
X为事件编号
懒得多说
如果是本是件的话
X = @event_id

————————————————————————————————————

我想说LZ为什么不肯好好吧脚本编辑器给翻一番呢………………………………
  1.         # 命令编号分支
  2.         case command.code
  3.         when 1  # 向下移动
  4.           move_down
  5.         when 2  # 向左移动
  6.           move_left
  7.         when 3  # 向右移动
  8.           move_right
  9.         when 4  # 向上移动
  10.           move_up
  11.         when 5  # 向左下移动
  12.           move_lower_left
  13.         when 6  # 向右下移动
  14.           move_lower_right
  15.         when 7  # 向左上移动
  16.           move_upper_left
  17.         when 8  # 向右上
  18.           move_upper_right
  19.         when 9  # 随机移动
  20.           move_random
  21.         when 10  # 接近主角
  22.           move_toward_player
  23.         when 11  # 远离主角
  24.           move_away_from_player
  25.         when 12  # 前进一步
  26.           move_forward
  27.         when 13  # 后退一步
  28.           move_backward
  29.         when 14  # 跳跃
  30.           jump(command.parameters[0], command.parameters[1])
  31.         end
复制代码

作者: 熊的选民    时间: 2010-7-23 07:03
event.move_forward #这个无效,事件毫无反应

我就是用的这个,无效啊
作者: 熊的选民    时间: 2010-7-23 07:16
我新建了一个项目,测试了一下,确认不是因为和其他脚本不兼容。事件就是无法移动
作者: zhangbanxian    时间: 2010-7-23 11:08
本帖最后由 zhangbanxian 于 2010-7-23 11:09 编辑

先往脚本里插
  1. class Game_Map
  2. attr_accessor :events
  3. end
复制代码
然后$game_map.events[事件id].move_up




作者: 熊的选民    时间: 2010-7-23 12:11
又测试了一下,成功了,不用attr_accessor :events
当我在别的游戏里测试时,可能和某个脚本有冲突,所有指令都不好用
后来建了个新项目,move_forward还是不能用,但是move_backward却好用了。原因在于这个脚本我是让主角和事件对话后触发的,事件虽然没有改变朝向,但move_forward却是朝主角的方向移动,因为主角挡路,才无法移动。用了move_backward后,看到事件朝与主角相反的方向平移了一下,才明白是怎么回事。大概和事件对话后,系统默认事件自动转向主角?但我又没有设置固定朝向,为什么事件没有转向呢?导致我一直以为这个脚本不好用。晕死了。总之谢谢各位的热心解答。





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