设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4249|回复: 23
打印 上一主题 下一主题

[已经过期] 请问 以事件方式处理事件跟随

[复制链接]

Lv5.捕梦者

梦石
0
星屑
35138
在线时间
4164 小时
注册时间
2007-12-15
帖子
10061
跳转到指定楼层
1
发表于 2017-5-5 15:58:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
感觉上跟领一队人走近似……但是不知道怎么设置……

角色在一些地图,比如水下、海底城什么的行走的时候,头上冒出一些水泡效果更好,这些水泡用行走图表现,播放帧数大于4,然后跟随主角移动,在主角头上循环显示。
试动画处理,总是在循环的结尾卡几帧,特别影响操作流畅度。
如果用图像处理气泡,就是把气泡花画行走图上,会有严重的遮挡异常。而且只能画4帧,不好看。

这里是素材文件。垂直排列,14帧循环,中间可以有12帧左右间歇

需要该事件跟随角色移动,X坐标相等,Y坐标-1。无论角色是否移动,该事件依然按照事件设置的移动路线显示。

角色行走图

Lv5.捕梦者

梦石
0
星屑
33071
在线时间
5103 小时
注册时间
2012-11-19
帖子
4878

开拓者

来自 9楼
发表于 2017-5-8 12:50:19 | 只看该作者
这个

  1. #==============================================================================
  2. class Sprite_Character < RPG::Sprite
  3. #--------------------------------------------------------------------------
  4. # 有气泡显示的地图ID
  5. PLAY_MAP_ID = [1,2]

  6. # 不显示气泡的行走图名
  7. NON_PLAY_CHARACTER = ["",""]

  8. # 控制显示的开关ID
  9. SMALL_SWITCHE = 10

  10. # 气泡样式转换样式的间隔帧数
  11. PATTERN_TIME = 10

  12. # 无气泡的空隙时间帧数
  13. WAIT_TIME = 20

  14. # 气泡相对于人物坐标的X轴调整
  15. ADD_X = 0

  16. # 气泡相对于人物坐标的Y轴调整
  17. ADD_Y = 0

  18. #--------------------------------------------------------------------------
  19.   #--------------------------------------------------------------------------
  20.   alias xr_addsmall_initialize initialize
  21.   def initialize(viewport, character = nil)
  22.     @small_dor = Sprite.new(viewport)
  23.     @count = 0; @max_count = PATTERN_TIME * 16 + WAIT_TIME
  24.     xr_addsmall_initialize(viewport, character)
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   def dispose
  28.     @small_dor.bitmap.dispose if @small_dor.bitmap
  29.     @small_dor.dispose
  30.     super
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   alias xr_addsmall_update update
  34.   def update
  35.     @count = (@count + 1) % @max_count
  36.     create_small if need_refresh
  37.     update_visible if @data_visible != self.visible
  38.     update_pattern if @small_dor.bitmap
  39.     xr_addsmall_update
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   def create_small
  43.     @data_name = @character.character_name
  44.     @data_switch = $game_switches[SMALL_SWITCHE]
  45.     @data_sname = $game_system.small_name
  46.     @small_dor.bitmap.dispose if @small_dor.bitmap
  47.     return unless small_show?
  48.     @small_dor.bitmap = RPG::Cache.character(@data_sname, 0)
  49.     @sw = @small_dor.bitmap.width / 4;@sh = @small_dor.bitmap.height / 4
  50.     @small_dor.ox = @sw / 2;@small_dor.oy = @sh
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   def update_visible
  54.     @small_dor.visible = @data_visible = self.visible
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   def update_pattern
  58.     sx = @count / PATTERN_TIME % 4 * @sw
  59.     sy = @count / PATTERN_TIME / 4 * @sh
  60.     @small_dor.src_rect.set(sx, sy, @sw, @sh)
  61.     @small_dor.x = @character.screen_x + ADD_X
  62.     @small_dor.y = @character.screen_y + ADD_Y
  63.     @small_dor.z = self.z + 16
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   def need_refresh
  67.     return false unless @character
  68.     return true if @data_name != @character.character_name
  69.     return true if @data_switch != $game_switches[SMALL_SWITCHE]
  70.     return true if @data_sname != $game_system.small_name
  71.     return false
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   def small_show?
  75.     return false unless PLAY_MAP_ID.include?($game_map.map_id)
  76.     return false unless @character
  77.     return false unless $game_switches[SMALL_SWITCHE]
  78.     return false if @character.tile_id > 0 or @character.character_name == ""
  79.     return false if NON_PLAY_CHARACTER.include?(@character.character_name)
  80.     return true
  81.   end
  82. end
  83. #==============================================================================
  84. class Game_System
  85.   def small_name; return @small_name || "气泡"; end
  86.   def set_small_name(name);@small_name = name;  end
  87. end
  88. #==============================================================================
复制代码
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36124
在线时间
10712 小时
注册时间
2009-3-15
帖子
4806
2
发表于 2017-5-5 16:24:12 | 只看该作者
弄下超4帧的行走图不就可以解決了么..最多加个判断..
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2223
在线时间
1371 小时
注册时间
2011-2-10
帖子
602

开拓者

3
发表于 2017-5-5 17:40:12 | 只看该作者
行走方式里为更改角色图片,事件为判断脚步数是否增加,增加的话移动事件到头顶,当然效果肯定还有问题。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33071
在线时间
5103 小时
注册时间
2012-11-19
帖子
4878

开拓者

4
发表于 2017-5-5 18:22:28 | 只看该作者
Project4.rar (198.13 KB, 下载次数: 104)

点评

看来我理解错了一些东西,我把气泡当行走图在处理。  发表于 2017-5-5 19:47
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35138
在线时间
4164 小时
注册时间
2007-12-15
帖子
10061
5
 楼主| 发表于 2017-5-7 12:26:10 | 只看该作者
本帖最后由 89444640 于 2017-5-7 12:28 编辑


非常感谢,
气泡是显示了,但是有点小问题希望能完善一下。

气泡播放的顺序没有按照从左上至右下那么播放。做成动画的话,这个气泡显示应该这样的。

就是说我可以用最多16帧表现一个跟随角色移动的小动画。

@small_dor.bitmap = RPG::Cache.character("气泡", 0)这个是可以设定多组吧,比如雪花、迷雾,啥啥啥的


脚本这么设置的话,地图要不就没有水,要不就全是水,而且是一直播放,没法做成那种从天空进入水面,然后出现气泡的的地图。
能否可以加个开关控制一下,因为是东方系列相关,肯定会牵扯到空战场景问题,用横版表现,角色从空中进入水面的瞬间,我播放水花的动画然后开关打开。就能更好显示角色在水下的状态了。
再比如越飞越高,冲出云层后空气稀薄,角色周边有雪花闪闪的效果。
不知道当初合金弹头3,关卡5开始飞行那段,从高空到地面的场景切换怎么做的,反正是云层遮挡了一下。
在同一个场景中切换出这种效果,演出力度感觉要大于切换场景出现效果。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33071
在线时间
5103 小时
注册时间
2012-11-19
帖子
4878

开拓者

6
发表于 2017-5-7 13:38:23 | 只看该作者
89444640 发表于 2017-5-7 12:26
非常感谢,
气泡是显示了,但是有点小问题希望能完善一下。

要改变显示什么东西,在事件-脚本输入:$game_system.set_small_name(图片名)
图片还是做成气泡那样的格式,放在行走图文件夹里。

Project4.rar (198.82 KB, 下载次数: 88)
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35138
在线时间
4164 小时
注册时间
2007-12-15
帖子
10061
7
 楼主| 发表于 2017-5-8 10:17:50 | 只看该作者
芯☆淡茹水 发表于 2017-5-7 13:38
要改变显示什么东西,在事件-脚本输入:$game_system.set_small_name(图片名)
图片还是做成气泡那样的格 ...

气泡顺序还是有问题,这样,你用这张图,让数字按顺序显示,这样气泡就正常了。

点评

习惯了,因为弄事件制作时候好做,那么这个脚本的图应该是横向排列………改个试试……  发表于 2017-5-8 11:32
我咧个去!难道就不能改图么!  发表于 2017-5-8 11:10
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35138
在线时间
4164 小时
注册时间
2007-12-15
帖子
10061
8
 楼主| 发表于 2017-5-8 11:46:41 | 只看该作者
89444640 发表于 2017-5-8 10:17
气泡顺序还是有问题,这样,你用这张图,让数字按顺序显示,这样气泡就正常了。
...


换了个素材做实验,白色的看不见--b 另存为就行了。

这个遮挡似乎……不那么对劲。

能否做成效果遮挡人物呢?

点评

比人物高但是可以被障碍物遮挡,就是回复里的效果~  发表于 2017-5-8 15:35
你是要比人物高还是比人物低,工程里是比人物低  发表于 2017-5-8 12:49
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35138
在线时间
4164 小时
注册时间
2007-12-15
帖子
10061
10
 楼主| 发表于 2017-5-8 16:28:00 | 只看该作者
本帖最后由 89444640 于 2017-5-8 16:30 编辑

还得请教一下,用脚本写文件名替换成别的效果那个

换了几种方式 加空格 去括号 都不行

请测试一下


有个地方请完善一下。

# 不显示气泡的行走图名
NON_PLAY_CHARACTER = ["",""]
需要的是,可以用事件脚本来控制需要显示效果的人物或npc。
比如那个阴云,需要跟着某个角色走,如果用上面的方法,所有npc包括主角都有阴云了。

还有,如果要更改坐标和其他数据,
PATTERN_TIME = XXX
调整时间间隔
WAIT_TIME = XXX
调节等待时间

如果用脚本控制?
还请再看一下,非常感谢。

点评

更改文件,文件名加引号  发表于 2017-5-8 17:35
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-21 23:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表