赞 | 45 |
VIP | 0 |
好人卡 | 0 |
积分 | 146 |
经验 | 0 |
最后登录 | 2024-11-21 |
在线时间 | 2196 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 14616
- 在线时间
- 2196 小时
- 注册时间
- 2019-1-24
- 帖子
- 1123
|
本帖最后由 miantouchi 于 2019-10-27 23:07 编辑
我给你发下我当初分析的一个运行流程,我的都是笨办法,但是只要你明白了是哪个流程出现问题了,才能解决你自己脚本的问题。
也就是说虽然看大RB和刀王的说明,理论知道了,但是还得自己动手去查看。
认真去分析每个过程,你才能找到问题原因,你可以多加点注释。
首先你要清楚第四阶段的刷新机制过程。
人物死亡的情况,@battler_visible == false 也就是红框处的代码成立,下面的都不成立。
这期间要想让人物appear
必须让
@battler.hidden ==false 并且 @battler.dead? ==fase
以及 @battler.damage == nil 或者 @battler.damage_pop ==true 这两个任意一个成立。
实际上关键点在@battler.damage_pop ==true,你可以仔细搜索下,只有4-5才打开这个开关的。
第一.也就是我们默系统的正常流程:接下来我方用技能复活阵亡的队员
4-1很快过去了
此时:隐藏:false,死亡:true,伤害:nil,战斗伤害标志:false
@battler_visible = false
4-2
我方使用复活技能复活队友,计算出恢复值-541(我当时测试的恢复值,实际是任意值).
此时:隐藏:false,死亡:false,伤害:-541.,战斗伤害标志:false
@battler_visible = false
接着刷新@spriteset.update,等着因为上面都不成立,结果什么都没干
4-3
行动方(我方)动画不等于0,@animation1_id != 0
@active_battler.animation_id = @animation1_id
@active_battler.animation_hit = true
接着刷新@spriteset.update
此时:隐藏:false,死亡:false,伤害:-541.,战斗伤害标志:false
@battler_visible = false
所以,这一步什么都没做(说的死亡角色)
行动方也就是施法者是播放释放法术动画(因为这个人是活的,进入的是红框以外下半部分代码)
4-4
首先,赋值给 对象方(死亡队员)动画id和命中
target.animation_id = @animation2_id
target.animation_hit = (target.damage != "Miss")
接着刷新@spriteset.update
此时:隐藏:false,死亡:false,伤害:-541.,战斗伤害标志:false
@battler_visible = false
所以,这一步什么都没做(死者)
4-5
此时因为第2步有恢复值-541,不等于空!=nil
所以damage_pop = true把伤害标志变成true(执行关键)
接着刷新@spriteset.update
此时:隐藏:false,死亡:false,伤害:-541.,战斗伤害标志:true
@battler_visible = false
所以执行下面的:这一步当中,appear,animation,damage都成立了
多说一句
接下来进入Scene_Battle当中update刷新update这三个动画次数
会卡在这句话,直到刷新3个 动作完毕,@spriteset.effect?才为false
# 显示效果中的情况下
if @spriteset.effect?
return
end
直到显示完毕才放行,进行下面步骤的进行。
第二部分,为什么去掉@battler.damage == nil or @battler.damage_pop会发生,战斗图先出现,施法和复活、伤害值动画后出来。
4-2运行之前:隐藏:false,死亡:true,伤害:nil.,战斗伤害标志:false
@battler_visible = false
4-2开始
我方使用复活技能复活队友,死亡变成false,血量恢复506不为空
此时:@battler_visible = false直接成立了
隐藏:false,死亡:false,伤害:-506.,战斗伤害标志:false
接着刷新@spriteset.update,
因为只判断这两项,隐藏:false,死亡:false。appear人物出现了,鬼畜了
此时:@battler_visible = true
4-3开始
因为:@battler_visible = true
隐藏:false,死亡:false,伤害:-506.,战斗伤害标志:false
动画ID不等于nil
显示我方施法动画(反复update)
4-4开始
因为:@battler_visible = true
隐藏:false,死亡:false,伤害:-506.,战斗伤害标志:false
动画ID不等于nil
显示复活动画(反复update)
4-5开始(打开伤害开关)
因为:@battler_visible = true
隐藏:false,死亡:false,伤害:-506.,战斗伤害标志:true
显示恢复血量值(反复update)
所以造成,人物出现-施法动画-复活动画(被复活)-显示恢复血量 |
-
1.png
(56.23 KB, 下载次数: 22)
评分
-
查看全部评分
|