Project1

标题: 如何让某个事件跟随着主角背后? [打印本页]

作者: 美丽晨露    时间: 2014-1-5 21:12
标题: 如何让某个事件跟随着主角背后?
本帖最后由 美丽晨露 于 2014-1-5 21:35 编辑

效果类似于人物跟随。
一个事件跟随着主角身后,需要时打开指定的开关就会显示NPC。
不需要时关闭开关,透明NPC。现在没有思路,请教之。
请问要怎么做?
作者: Sion    时间: 2014-1-5 23:04
这个透明的时候就相当于不存在吧?
如果是这样的话,要显示这个事件的时候就把它移动到人物背后就可以了。一会不用了再移走它。
作者: 国产吃货    时间: 2014-1-5 23:14
能说明一下什么用途吗
作者: 美丽晨露    时间: 2014-1-6 20:38
Sion 发表于 2014-1-5 23:04
这个透明的时候就相当于不存在吧?
如果是这样的话,要显示这个事件的时候就把它移动到人物背后就可以了。 ...

具体移动位置要怎么判断呢?
因为是随着玩家跟NPC的对话朝向不一样。
所以,需要判断的地方也更多了。
作者: MeowSnow    时间: 2014-1-6 20:52
干脆整合到一个行走图里好了~转方向好像很生硬……大丈夫!既然是幽灵可以半透明混过去嘛唔哈哈哈哈哈哈哈哈,EI·Psy·Congroo
作者: 正太君    时间: 2014-1-10 20:29
看看这个范例如何吧
Project1.rar (238.81 KB, 下载次数: 51)

脚本附在下面
RUBY 代码复制
  1. #==============================================================================
  2. # ★ 正太君的鬼怪脚本
  3. #------------------------------------------------------------------------------
  4. #   本脚本来自[url]www.66rpg.com[/url]
  5. #  作者:正太君
  6. #------------------------------------------------------------------------------
  7. #   使用请保留版权信息,谢谢...
  8. #==============================================================================
  9.  
  10. class Game_Player < Game_Character
  11.   attr_reader   :player_position
  12.   #--------------------------------------------------------------------------
  13.   # ● 更新画面
  14.   #--------------------------------------------------------------------------
  15.   def update
  16.     last_real_x = @real_x
  17.     last_real_y = @real_y
  18.     last_moving = moving?
  19.     move_by_input
  20.     super
  21.     update_scroll(last_real_x, last_real_y)
  22.     update_vehicle
  23.     update_nonmoving(last_moving)
  24.     save_position
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # ● 保存角色上一步的位置
  28.   #--------------------------------------------------------------------------
  29.   def save_position
  30.     @player_position = [[@x, @y],[@x, @y]] if @player_position.nil?
  31.     @player_position.push([@x, @y]) if @player_position[1] != [@x, @y]
  32.     @player_position.shift if @player_position.size > 2
  33.   end
  34. end  
  35.  
  36. class Game_Character
  37.   #--------------------------------------------------------------------------
  38.   # ● 跟随角色
  39.   #--------------------------------------------------------------------------
  40.   def follow_player
  41.     return if $game_player.player_position.nil?
  42.     event_position_x = $game_player.player_position[0][0]
  43.     event_position_y = $game_player.player_position[0][1]
  44.     player_position_x = $game_player.x
  45.     player_position_y = $game_player.y
  46.     if @x > event_position_x
  47.       move_left
  48.     elsif @x < event_position_x
  49.       move_right
  50.     elsif @y > event_position_y
  51.       move_up
  52.     elsif @y < event_position_y
  53.       move_down
  54.     end  
  55.   end
  56. end
  57. #==============================================================================
  58. #   本脚本来自[url]www.66rpg.com[/url]
  59. #  作者:正太君
  60. #------------------------------------------------------------------------------
  61. #   使用请保留版权信息,谢谢...
  62. #==============================================================================

作者: 美丽晨露    时间: 2014-1-10 20:37
正太君 发表于 2014-1-10 20:29
看看这个范例如何吧

感谢帮助的说
不过效果跟我想要的不是很相同。
我想要的是,跟指定一个NPC对话后,鬼才出现。
对话结束后,鬼又会消失。




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