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

Project1

 找回密码
 注册会员
搜索

怎样将某事件动画的状态复制到另一事件上?

查看数: 2996 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-12-29 00:05

正文摘要:

本帖最后由 KB.Driver 于 2018-12-29 00:06 编辑 复制动画(animation_id)很简单,但是有没有办法连帧数一起复制过去? 比如有事件A和B,A的动画进行到第10帧的时候,有没有办法让B从动画的第10帧开始? 补充: ...

回复

KB.Driver 发表于 2018-12-29 22:20:58
百里_飞柳 发表于 2018-12-29 13:32
在 Sprite_Base 类里的 @ani_duration 是用于计时的
你在Sprite_Battler类里改一下,把它和id一起赋值过去 ...

照着写了然后测试了一下,动画确实可以按帧数复制过去√

可惜的是我做的是闪烁对象,那个好像不是复制动画就可以的……
到底是哪个参数呢……要是找到了就能一起复制过去了

点评

默认代码好像没有公开闪烁的相关变量,只能看到self.flash……  发表于 2018-12-29 22:32
百里_飞柳 发表于 2018-12-29 13:32:16
本帖最后由 百里_飞柳 于 2018-12-29 16:00 编辑

在 Sprite_Base 类里的 @ani_duration 是用于计时的
你在Sprite_Battler类里改一下,把它和id一起赋值过去?




参考流程:
- 在Sprite_Character类里定义方法B,传入另一个Sprite_Character类型参数用于处理动画复制,推荐按照start_animation方法写,再覆盖@ani_duration的值再加1(保证不会因额外调用update导致帧数差异),再调用一次update_animation,确保立即有显示
- 在Spriteset_Map类里定义方法C,传入Game_Character类参数c,返回@character_sprites人物精灵数组中绑定了c对象的精灵
- 在Game_Interpreter类里新建方法A,用于处理动画的复制(从一个Game_Character类的对象复制到另一个),方法传入一个源character对象a1,一个目标对象a2(可能是队列角色,可能是事件),(记得给Scene_Map加上访问spriteset变量的attr_reader)通过调用 SceneManager.scene.spriteset 的方法C获取a1和a2的精灵,再调用a2精灵的方法B(a1)

点评

编辑了,一个可行思路,具体可以对照默认脚本里的看  发表于 2018-12-29 15:59
唔,感觉不知道怎么写了_(:3」∠)_  发表于 2018-12-29 15:18
……行走图的也是这个,不过是要在Sprite_Character类里复制过去,另,默认只有Sprite绑定game类,没有反过来的操作,所以可能要在Spriteset里一个个找  发表于 2018-12-29 15:16
好像不是这样,我是在行走图上显示动画,但是Game_Character相关的类里都没有出现Sprite,感觉好像没办法从事件身上得知Sprite的信息  发表于 2018-12-29 15:11

评分

参与人数 2星屑 +30 +1 收起 理由
VIPArcher + 30 认可答案
KB.Driver + 1 精品文章

查看全部评分

RMVXA 发表于 2018-12-29 09:33:37
本帖最后由 RMVXA 于 2018-12-29 09:43 编辑

我的话只能绕开这种麻烦的问题吧,比如用这种效果:做一个奇数帧的动画X,第一帧目标闪烁@1,第二帧不闪烁,第三帧目标闪烁@1……  然后在事件A显示动画X(等待结束)后,事件B再显示X,就能做到类似的效果……
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2025-7-19 17:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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