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

Project1

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

[已经过期] 人物战斗开场动画

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3846
在线时间
1966 小时
注册时间
2013-1-3
帖子
9536
跳转到指定楼层
1
发表于 2014-7-24 13:28:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这个开场动画就类似拳皇战斗前的人物动作
不知道用什么方法实现,求思路点拨
《宿愿·寻剑篇》正式版已经发布!快去看看!点击进入论坛发布贴

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

2
发表于 2014-7-24 13:38:15 | 只看该作者
1.播放动画(人物图形先设置为空), 简单吧
2.移动路线(行走图动画), 这个在<魔女之家>中被大量运用
3.(2的升级版)即时战斗类游戏什么的
4.想不出来了

  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
3
发表于 2014-7-24 14:20:34 | 只看该作者
在角色名称后追加,表示动画id不过记得对象消失!!
  1. #==============================================================================
  2. # ■ Sprite_Battler
  3. #------------------------------------------------------------------------------
  4. #  战斗显示用活动块。Game_Battler 类的实例监视、
  5. # 活动块的状态的监视。
  6. #==============================================================================
  7. class Game_Actor
  8.   def ani_id
  9.     return @name.split(",")[1] != nil ? @name.split(",")[1].to_i : 0
  10.   end
  11.   def name
  12.     return @name.split(",")[0]
  13.   end
  14. end

  15. class Sprite_Battler < RPG::Sprite
  16.   alias initialize_ani_old initialize
  17.   def initialize(*args)
  18.     initialize_ani_old(*args)
  19.     @开场动画 = true#
  20.   end
  21.   #--------------------------------------------------------------------------
  22.   # ● 刷新画面
  23.   #--------------------------------------------------------------------------
  24.   def update
  25.     super
  26.     # 战斗者为 nil 的情况下
  27.     if [url=home.php?mod=space&uid=133701]@battler[/url] == nil
  28.       self.bitmap = nil
  29.       loop_animation(nil)
  30.       return
  31.     else
  32.       if @开场动画
  33.         if @battler.is_a?(Game_Actor)
  34.         animation = $data_animations[@battler.ani_id]
  35.         animation(animation, true) if !animation.nil?
  36.         # 设置活动块的坐标
  37.         self.x = @battler.screen_x
  38.         self.y = @battler.screen_y
  39.         self.z = 9999
  40.         end
  41.         @开场动画 = nil
  42.       end
  43.     end
  44.     # 文件名和色相与当前情况有差异的情况下
  45.     if @battler.battler_name != @battler_name or
  46.        @battler.battler_hue != @battler_hue
  47.       # 获取、设置位图
  48.       @battler_name = @battler.battler_name
  49.       @battler_hue = @battler.battler_hue
  50.       self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  51.       @width = bitmap.width
  52.       [url=home.php?mod=space&uid=291977]@height[/url] = bitmap.height
  53.       self.ox = @width / 2
  54.       self.oy = @height
  55.       # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
  56.       if @battler.dead? or @battler.hidden
  57.         self.opacity = 0
  58.       end
  59.     end
  60.     # 动画 ID 与当前的情况有差异的情况下
  61.     if @battler.damage == nil and
  62.        @battler.state_animation_id != @state_animation_id
  63.       @state_animation_id = @battler.state_animation_id
  64.       loop_animation($data_animations[@state_animation_id])
  65.     end
  66.     # 应该被显示的角色的情况下
  67.     if @battler.is_a?(Game_Actor) and @battler_visible
  68.       # 不是主状态的时候稍稍降低点透明度
  69.       if $game_temp.battle_main_phase
  70.         self.opacity += 3 if self.opacity < 255
  71.       else
  72.         self.opacity -= 3 if self.opacity > 207
  73.       end
  74.     end
  75.     # 明灭
  76.     if @battler.blink
  77.       blink_on
  78.     else
  79.       blink_off
  80.     end
  81.     # 不可见的情况下
  82.     unless @battler_visible
  83.       # 出现
  84.       if not @battler.hidden and not @battler.dead? and
  85.          (@battler.damage == nil or @battler.damage_pop)
  86.         appear
  87.         @battler_visible = true
  88.       end
  89.     end
  90.     # 可见的情况下
  91.     if @battler_visible
  92.       # 逃跑
  93.       if @battler.hidden
  94.         $game_system.se_play($data_system.escape_se)
  95.         escape
  96.         @battler_visible = false
  97.       end
  98.       # 白色闪烁
  99.       if @battler.white_flash
  100.         whiten
  101.         @battler.white_flash = false
  102.       end
  103.       # 动画
  104.       if @battler.animation_id != 0
  105.         animation = $data_animations[@battler.animation_id]
  106.         animation(animation, @battler.animation_hit)
  107.         @battler.animation_id = 0
  108.       end
  109.       # 伤害
  110.       if @battler.damage_pop
  111.         damage(@battler.damage, @battler.critical)
  112.         @battler.damage = nil
  113.         @battler.critical = false
  114.         @battler.damage_pop = false
  115.       end
  116.       # korapusu
  117.       if @battler.damage == nil and @battler.dead?
  118.         if @battler.is_a?(Game_Enemy)
  119.           $game_system.se_play($data_system.enemy_collapse_se)
  120.         else
  121.           $game_system.se_play($data_system.actor_collapse_se)
  122.         end
  123.         collapse
  124.         @battler_visible = false
  125.       end
  126.     end
  127.     # 设置活动块的坐标
  128.     self.x = @battler.screen_x
  129.     self.y = @battler.screen_y
  130.     self.z = @battler.screen_z
  131.   end
  132. end
复制代码

点评

只需简单修改Sprite_Battler就能实现,animation 是播放动画的方法  发表于 2014-7-25 08:40
为什么第十九行有误~  发表于 2014-7-25 06:42

评分

参与人数 1星屑 +66 收起 理由
RyanBern + 66 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-24 20:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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