Project1

标题: 怎样让NPC也实现真八方向走? [打印本页]

作者: xyxw    时间: 2009-7-11 19:23
标题: 怎样让NPC也实现真八方向走?
本帖最后由 xyxw 于 2009-7-15 16:54 编辑

我用了真·八方向走ver1.1 的脚本,但是只有主角可以实现真八方向行走,使用事件设置NPC的移动路线时,向右上、右下、左上、左下移动时,行走图不会变为斜方向行走图。(素材没有问题)

请问该如何实现NPC的八方向走?
作者: 莳衍灵儿    时间: 2009-7-11 23:39
本帖最后由 莳衍灵儿 于 2009-7-11 23:52 编辑

行走图图片从上到下的面向排列顺序为:下,左,右,上,左下,右下,左上,右上
这个没问题的话就没问题了(已经测试)
直接在NPC的移动路线里设置为自定义然后设置行走方向(如脚本所说,自定义里面使用脚本输入c4或者c8或者自己设置)

蒽~请问下还用了什么别的有冲突可能的脚本吗~
作者: xyxw    时间: 2009-7-12 18:34
本帖最后由 xyxw 于 2009-7-12 18:35 编辑

谢谢楼上解答,可是我的问题不在于此……

NPC往8方向行走是没问题,但是并没有换成8方向行走图。

比如说,向右上方移动的时候,仍然显示的是向上的行走图。

我新建了一个工程只使用这一个脚本,还是有这个问题。

补充:主角八方行走时完全正常。
作者: 风中承诺    时间: 2009-7-13 12:01
用脚本
http://rpg.blue/web/index.php?doc-view-4006
我不记得是不是这个了,有一个是用四方向的行走图做出八方向走来。
作者: xyxw    时间: 2009-7-13 12:39
本帖最后由 xyxw 于 2009-7-13 12:58 编辑

我用的就是楼上的那个脚本。
素材图是八方向的,用在主角身上没问题。
但是用在NPC身上就不会显示那四个斜方向的行走图了~
作者: 465889216    时间: 2009-7-13 12:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: xyxw    时间: 2009-7-13 19:22
自顶一次
作者: xyxw    时间: 2009-7-14 14:16
自顶
作者: xyxw    时间: 2009-7-14 19:48
自顶
作者: xyxw    时间: 2009-7-15 16:55
再自顶
作者: bbsderek    时间: 2009-7-16 01:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: ycscycsc    时间: 2009-7-17 11:46
把这段脚本放进去吧,应该对你有用

#==============================================================================
# ■ Game_Event
#------------------------------------------------------------------------------
#  处理事件的类。条件判断、事件页的切换、并行处理、执行事件功能
# 在 Game_Map 类的内部使用。
#==============================================================================
class Game_Event < Game_Character
#..............................................................................
  #--------------------------------------------------------------------------
  # ● 向左下移动
  #--------------------------------------------------------------------------
  def move_lower_left
    # 没有固定面向的场合
    unless @direction_fix
      # 朝向是右的情况下适合的面是左面、朝向是上的情况下适合的面是下面
      @direction = 1#(@direction == 6 ? 4 : @direction == 8 ? 2 : @direction)
    end
    # 下→左、左→下 的通道可以通行的情况下
    if (passable?(@x, @y, 2) and passable?(@x, @y + 1, 4)) or
       (passable?(@x, @y, 4) and passable?(@x - 1, @y, 2))
      # 更新坐标
      @x -= 1
      @y += 1
      # 增加步数
      increase_steps
    end
  end
  #--------------------------------------------------------------------------
  # ● 向右下移动
  #--------------------------------------------------------------------------
  def move_lower_right
    # 没有固定面向的场合
    unless @direction_fix
      # 朝向是右的情况下适合的面是左面、朝向是上的情况下适合的面是下面
      @direction = 3#(@direction == 4 ? 6 : @direction == 8 ? 2 : @direction)
    end
    # 下→右、右→下 的通道可以通行的情况下
    if (passable?(@x, @y, 2) and passable?(@x, @y + 1, 6)) or
       (passable?(@x, @y, 6) and passable?(@x + 1, @y, 2))
      # 更新坐标
      @x += 1
      @y += 1
      # 增加步数
      increase_steps
    end
  end
  #--------------------------------------------------------------------------
  # ● 向左上移动
  #--------------------------------------------------------------------------
  def move_upper_left
    # 没有固定面向的场合
    unless @direction_fix
      # 朝向是右的情况下适合的面是左面、朝向是上的情况下适合的面是下面
      @direction = 7#(@direction == 6 ? 4 : @direction == 2 ? 8 : @direction)
    end
    # 上→左、左→上 的通道可以通行的情况下
    if (passable?(@x, @y, 8) and passable?(@x, @y - 1, 4)) or
       (passable?(@x, @y, 4) and passable?(@x - 1, @y, 8))
      # 更新坐标
      @x -= 1
      @y -= 1
      # 增加步数
      increase_steps
    end
  end
  #--------------------------------------------------------------------------
  # ● 向右上移动
  #--------------------------------------------------------------------------
  def move_upper_right
    # 没有固定面向的场合
    unless @direction_fix
      # 朝向是右的情况下适合的面是左面、朝向是上的情况下适合的面是下面
      @direction = 9#(@direction == 4 ? 6 : @direction == 2 ? 8 : @direction)
    end
    # 上→右、右→上 的通道可以通行的情况下
    if (passable?(@x, @y, 8) and passable?(@x, @y - 1, 6)) or
       (passable?(@x, @y, 6) and passable?(@x + 1, @y, 8))
      # 更新坐标
      @x += 1
      @y -= 1
      # 增加步数
      increase_steps
    end
  end
end




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