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

Project1

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

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

[复制链接]

Lv5.捕梦者

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

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

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

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

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

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

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

角色行走图

Lv5.捕梦者

梦石
0
星屑
33418
在线时间
5108 小时
注册时间
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
星屑
35180
在线时间
4169 小时
注册时间
2007-12-15
帖子
10066
13
 楼主| 发表于 2017-5-24 08:58:40 | 只看该作者
本帖最后由 89444640 于 2017-5-24 09:09 编辑

测试时发现个问题,
能不能只让这个效果只在事件上显示而不在操作角色上显示。
应用案例,水族馆鱼缸。
角色在外面看,里面的鱼吐气泡,角色和外面围观的npc不跟着一起吐泡。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35180
在线时间
4169 小时
注册时间
2007-12-15
帖子
10066
12
 楼主| 发表于 2017-5-16 16:55:59 | 只看该作者
芯☆淡茹水 发表于 2017-5-9 16:01
改为帧数用变量控制。
不显示气泡的事件,在事件名字后面加一个 , 号,再加一个 1 。当然事件是地图图块和 ...

抱歉很久才上来,测试时发现,脚本中
# 控制气泡样式转换样式的间隔帧数的变量ID,帧数为变量数值。
PATTERN_TIME_ID = 10

# 控制无气泡的空隙时间帧数的变量ID,帧数为变量数值。
WAIT_TIME_ID = 11

若自己修改后面的变量数值,改任意数值,在运行时候会出现动画显示速度飞快且勿等待。
请问测试时有出现这种情况吗?

点评

原来如此!我理解错了。非常感谢耐心的指导。  发表于 2017-5-17 16:37
看范例那个空白事件的变量操作,你就明白了  发表于 2017-5-17 11:01
“帧数为变量数值” 注意是游戏变量,你不是说要随时控制帧数吗,改变这个ID的游戏变量值,就是对应的帧数,  发表于 2017-5-17 11:00
下载一个新的,把数据改成WAIT_TIME_ID = 60 PATTERN_TIME_ID = 40依然显示速度无等待。是不是哪里出问题了?  发表于 2017-5-17 09:43
有啊,把样式转换帧数变量赋值很小,把间隔帧数赋值为零,就是这样子的。  发表于 2017-5-16 21:56
回复 支持 反对

使用道具 举报

Lv5.捕梦者

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

开拓者

11
发表于 2017-5-9 16:01:59 | 只看该作者
改为帧数用变量控制。
不显示气泡的事件,在事件名字后面加一个 , 号,再加一个 1 。当然事件是地图图块和无行走图的事件,都是不显示的。
Project4.rar (198.59 KB, 下载次数: 43)

评分

参与人数 1梦石 +1 收起 理由
RyanBern + 1 认可答案

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35180
在线时间
4169 小时
注册时间
2007-12-15
帖子
10066
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
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35180
在线时间
4169 小时
注册时间
2007-12-15
帖子
10066
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
星屑
35180
在线时间
4169 小时
注册时间
2007-12-15
帖子
10066
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
星屑
33418
在线时间
5108 小时
注册时间
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 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-11 14:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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