Project1
标题:
人物战斗开场动画
[打印本页]
作者:
紫英晓狼1130
时间:
2014-7-24 13:28
标题:
人物战斗开场动画
这个开场动画就类似拳皇战斗前的人物动作
不知道用什么方法实现,求思路点拨
作者:
kuerlulu
时间:
2014-7-24 13:38
1.播放动画(人物图形先设置为空), 简单吧
2.移动路线(行走图动画), 这个在<魔女之家>中被大量运用
3.(2的升级版)即时战斗类游戏什么的
4.想不出来了
作者:
恐惧剑刃
时间:
2014-7-24 14:20
在角色名称后追加,表示动画id不过记得对象消失!!
#==============================================================================
# ■ Sprite_Battler
#------------------------------------------------------------------------------
# 战斗显示用活动块。Game_Battler 类的实例监视、
# 活动块的状态的监视。
#==============================================================================
class Game_Actor
def ani_id
return @name.split(",")[1] != nil ? @name.split(",")[1].to_i : 0
end
def name
return @name.split(",")[0]
end
end
class Sprite_Battler < RPG::Sprite
alias initialize_ani_old initialize
def initialize(*args)
initialize_ani_old(*args)
@开场动画 = true#
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
super
# 战斗者为 nil 的情况下
if [url=home.php?mod=space&uid=133701]@battler[/url] == nil
self.bitmap = nil
loop_animation(nil)
return
else
if @开场动画
if @battler.is_a?(Game_Actor)
animation = $data_animations[@battler.ani_id]
animation(animation, true) if !animation.nil?
# 设置活动块的坐标
self.x = @battler.screen_x
self.y = @battler.screen_y
self.z = 9999
end
@开场动画 = nil
end
end
# 文件名和色相与当前情况有差异的情况下
if @battler.battler_name != @battler_name or
@battler.battler_hue != @battler_hue
# 获取、设置位图
@battler_name = @battler.battler_name
@battler_hue = @battler.battler_hue
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
[url=home.php?mod=space&uid=291977]@height[/url] = bitmap.height
self.ox = @width / 2
self.oy = @height
# 如果是战斗不能或者是隐藏状态就把透明度设置成 0
if @battler.dead? or @battler.hidden
self.opacity = 0
end
end
# 动画 ID 与当前的情况有差异的情况下
if @battler.damage == nil and
@battler.state_animation_id != @state_animation_id
@state_animation_id = @battler.state_animation_id
loop_animation($data_animations[@state_animation_id])
end
# 应该被显示的角色的情况下
if @battler.is_a?(Game_Actor) and @battler_visible
# 不是主状态的时候稍稍降低点透明度
if $game_temp.battle_main_phase
self.opacity += 3 if self.opacity < 255
else
self.opacity -= 3 if self.opacity > 207
end
end
# 明灭
if @battler.blink
blink_on
else
blink_off
end
# 不可见的情况下
unless @battler_visible
# 出现
if not @battler.hidden and not @battler.dead? and
(@battler.damage == nil or @battler.damage_pop)
appear
@battler_visible = true
end
end
# 可见的情况下
if @battler_visible
# 逃跑
if @battler.hidden
$game_system.se_play($data_system.escape_se)
escape
@battler_visible = false
end
# 白色闪烁
if @battler.white_flash
whiten
@battler.white_flash = false
end
# 动画
if @battler.animation_id != 0
animation = $data_animations[@battler.animation_id]
animation(animation, @battler.animation_hit)
@battler.animation_id = 0
end
# 伤害
if @battler.damage_pop
damage(@battler.damage, @battler.critical)
@battler.damage = nil
@battler.critical = false
@battler.damage_pop = false
end
# korapusu
if @battler.damage == nil and @battler.dead?
if @battler.is_a?(Game_Enemy)
$game_system.se_play($data_system.enemy_collapse_se)
else
$game_system.se_play($data_system.actor_collapse_se)
end
collapse
@battler_visible = false
end
end
# 设置活动块的坐标
self.x = @battler.screen_x
self.y = @battler.screen_y
self.z = @battler.screen_z
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1