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

Project1

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

全屏动画问题

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2008-6-17
帖子
200
跳转到指定楼层
1
发表于 2008-9-17 02:49:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
有一个全屏动画防卡的脚本。
  1. 教程内容

  2. #==============================================================================

  3. # ■ Sprite_Battler

  4. #------------------------------------------------------------------------------

  5. #  战斗显示用活动块。Game_Battler 类的实例监视、

  6. # 活动块的状态的监视。

  7. #==============================================================================



  8. class Sprite_Battler < RPG::Sprite

  9. #--------------------------------------------------------------------------

  10. # ● 调用父类刷新画面

  11. #--------------------------------------------------------------------------

  12. def update

  13.    super

  14. end

  15. #--------------------------------------------------------------------------

  16. # ● 新的刷新画面,不调用父类

  17. #--------------------------------------------------------------------------

  18. def new_update

  19.    #-----------叶子到此一游-----------

  20.    #super

  21.    #-----------叶子到此一游-----------

  22.    # 战斗者为 nil 的情况下

  23.    if @battler == nil

  24.      self.bitmap = nil

  25.      loop_animation(nil)

  26.      return

  27.    end

  28.    # 文件名和色相与当前情况有差异的情况下

  29.    if @battler.battler_name != @battler_name or

  30.       @battler.battler_hue != @battler_hue

  31.      # 获取、设置位图

  32.      @battler_name = @battler.battler_name

  33.      @battler_hue = @battler.battler_hue

  34.      self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)

  35.      @width = bitmap.width

  36.      @height = bitmap.height

  37.      self.ox = @width / 2

  38.      self.oy = @height

  39.      # 如果是战斗不能或者是隐藏状态就把透明度设置成 0

  40.      if @battler.dead? or @battler.hidden

  41.        self.opacity = 0

  42.      end

  43.    end

  44.    # 动画 ID 与当前的情况有差异的情况下

  45.    if @battler.damage == nil and

  46.       @battler.state_animation_id != @state_animation_id

  47.      @state_animation_id = @battler.state_animation_id

  48.      loop_animation($data_animations[@state_animation_id])

  49.    end

  50.    # 应该被显示的角色的情况下

  51.    if @battler.is_a?(Game_Actor) and @battler_visible

  52.      # 不是主状态的时候稍稍降低点透明度

  53.      if $game_temp.battle_main_phase

  54.        self.opacity += 3 if self.opacity < 255

  55.      else

  56.        self.opacity -= 3 if self.opacity > 207

  57.      end

  58.    end

  59.    # 明灭

  60.    if @battler.blink

  61.      blink_on

  62.    else

  63.      blink_off

  64.    end

  65.    # 不可见的情况下

  66.    unless @battler_visible

  67.      # 出现

  68.      if not @battler.hidden and not @battler.dead? and

  69.         (@battler.damage == nil or @battler.damage_pop)

  70.        appear

  71.        @battler_visible = true

  72.      end

  73.    end

  74.    # 可见的情况下

  75.    if @battler_visible

  76.      # 逃跑

  77.      if @battler.hidden

  78.        $game_system.se_play($data_system.escape_se)

  79.        escape

  80.        @battler_visible = false

  81.      end

  82.      # 白色闪烁

  83.      if @battler.white_flash

  84.        whiten

  85.        @battler.white_flash = false

  86.      end

  87.      # 动画

  88.      if @battler.animation_id != 0

  89.        animation = $data_animations[@battler.animation_id]

  90.        animation(animation, @battler.animation_hit)

  91.        @battler.animation_id = 0

  92.      end

  93.      # 伤害

  94.      if @battler.damage_pop

  95.        damage(@battler.damage, @battler.critical)

  96.        @battler.damage = nil

  97.        @battler.critical = false

  98.        @battler.damage_pop = false

  99.      end

  100.      # korapusu

  101.      if @battler.damage == nil and @battler.dead?

  102.        if @battler.is_a?(Game_Enemy)

  103.          $game_system.se_play($data_system.enemy_collapse_se)

  104.        else

  105.          $game_system.se_play($data_system.actor_collapse_se)

  106.        end

  107.        collapse

  108.        @battler_visible = false

  109.      end

  110.    end

  111.    # 设置活动块的坐标

  112.    self.x = @battler.screen_x

  113.    self.y = @battler.screen_y

  114.    self.z = @battler.screen_z

  115. end

  116. end



  117. #==============================================================================

  118. # ■ Spriteset_Battle

  119. #------------------------------------------------------------------------------

  120. #  处理战斗画面的活动块的类。本类在 Scene_Battle 类

  121. # 的内部使用。

  122. #==============================================================================



  123. class Spriteset_Battle

  124. #--------------------------------------------------------------------------

  125. # ● 刷新画面

  126. #--------------------------------------------------------------------------

  127. def update

  128.    # 刷新角色的活动块 (对应角色的替换)

  129.    @actor_sprites[0].battler = $game_party.actors[0]

  130.    @actor_sprites[1].battler = $game_party.actors[1]

  131.    @actor_sprites[2].battler = $game_party.actors[2]

  132.    @actor_sprites[3].battler = $game_party.actors[3]

  133.    # 战斗背景的文件名与现在情况有差异的情况下

  134.    if @battleback_name != $game_temp.battleback_name

  135.      @battleback_name = $game_temp.battleback_name

  136.      if @battleback_sprite.bitmap != nil

  137.        @battleback_sprite.bitmap.dispose

  138.      end

  139.      @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)

  140.      @battleback_sprite.src_rect.set(0, 0, 640, 320)

  141.    end

  142.    #-----------叶子到此一游-----------

  143.    # 刷新战斗者的活动块

  144.    for sprite in @enemy_sprites + @actor_sprites

  145.      sprite.new_update

  146.    end

  147.    # 刷新父类

  148.    for sprite in @enemy_sprites + @actor_sprites

  149.      sprite.update

  150.    end

  151.    #-----------叶子到此一游-----------

  152.    # 刷新天气图形

  153.    @weather.type = $game_screen.weather_type

  154.    @weather.max = $game_screen.weather_max

  155.    @weather.update

  156.    # 刷新图片活动块

  157.    for sprite in @picture_sprites

  158.      sprite.update

  159.    end

  160.    # 刷新计时器活动块

  161.    @timer_sprite.update

  162.    # 设置画面的色调与震动位置

  163.    @viewport1.tone = $game_screen.tone

  164.    @viewport1.ox = $game_screen.shake

  165.    # 设置画面的闪烁色

  166.    @viewport4.color = $game_screen.flash_color

  167.    # 刷新显示端口

  168.    @viewport1.update

  169.    @viewport2.update

  170.    @viewport4.update

  171. end

  172. end

复制代码


请问如何在使用RTAB的情况下使用该脚本?
或者有没有类似的RTAB专用脚本?

Lv1.梦旅人

逃兵

2
发表于 2008-9-17 03:56:27 | 只看该作者


LZ可以试试直接用

冲突的话
先插入关于class Sprite_Battler < RPG::Sprite的脚本
再把“#-----------叶子到此一游-----------”中间的部分加到相应部分
「If you judge people, you have no time to love them.」—— Mother Teresa
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2008-6-17
帖子
200
3
 楼主| 发表于 2008-9-17 21:03:21 | 只看该作者
我的sprite battler是改过的…
  1. #==============================================================================
  2. # ■ Sprite_Battler
  3. #------------------------------------------------------------------------------
  4. #  战斗显示用活动块。Game_Battler 类的实例监视、
  5. # 活动块的状态的监视。
  6. #==============================================================================

  7. class Sprite_Battler < RPG::Sprite
  8.   #--------------------------------------------------------------------------
  9.   # ● 定义实例变量
  10.   #--------------------------------------------------------------------------
  11.   attr_accessor :battler                  # 战斗者
  12.   #--------------------------------------------------------------------------
  13.   # ● 初始化对像
  14.   #     viewport : 显示端口
  15.   #     battler  : 战斗者 (Game_Battler)
  16.   #--------------------------------------------------------------------------
  17.   def initialize(viewport, battler = nil)
  18.     super(viewport)
  19.     @battler = battler
  20.     @battler_visible = false
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 释放
  24.   #--------------------------------------------------------------------------
  25.   def dispose
  26.     if self.bitmap != nil
  27.       self.bitmap.dispose
  28.     end
  29.     super
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 刷新画面
  33.   #--------------------------------------------------------------------------
  34.   def update
  35.     super
  36.     # 战斗者为 nil 的情况下
  37.     if @battler == nil
  38.       self.bitmap = nil
  39.       loop_animation(nil)
  40.       return
  41.     end
  42.     # 文件名和色相与当前情况有差异的情况下
  43.     if (@battler.battler_name != @battler_name or
  44.        @battler.battler_hue != @battler_hue)
  45.       # 获取、设置位图
  46.       @battler_name = @battler.battler_name
  47.       @battler_hue = @battler.battler_hue
  48.       self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  49.       @width = bitmap.width
  50.       @height = bitmap.height
  51.       self.ox = @width / 2
  52.       self.oy = @height
  53.   ###########################################################################
  54.       if @battler.dead?
  55.         self.bitmap = RPG::Cache.battler(@battler.id.to_s + "Dead", @battler_hue)
  56.         @width = bitmap.width
  57.         @height = bitmap.height
  58.         self.ox = @width / 2
  59.         self.oy = @height
  60.       end
  61.       # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
  62.       if (@battler.dead? or @battler.hidden) and @battler.is_a?(Game_Enemy)
  63.   ###########################################################################
  64.         self.opacity = 0
  65.       end
  66.     end
  67.     # 动画 ID 与当前的情况有差异的情况下
  68.     if @battler.damage == nil and
  69.        @battler.state_animation_id != @state_animation_id
  70.       @state_animation_id = @battler.state_animation_id
  71.       loop_animation($data_animations[@state_animation_id])
  72.     end
  73.     # 应该被显示的角色的情况下
  74.     if @battler.is_a?(Game_Actor) and @battler_visible
  75.       # 不是主状态的时候稍稍降低点透明度
  76.       if $game_temp.battle_main_phase
  77.         self.opacity += 3 if self.opacity < 255
  78.       else
  79.         self.opacity -= 3 if self.opacity > 207
  80.       end
  81.     end
  82.     # 明灭
  83.     if @battler.blink
  84.       blink_on
  85.     else
  86.       blink_off
  87.     end
  88.     # 不可见的情况下
  89.     unless @battler_visible
  90.       # 出现
  91.       if not @battler.hidden and not @battler.dead? and
  92.   ###########################################################################
  93.          (@battler.damage == nil or @battler.damage_pop)
  94.         if @battler.is_a?(Game_Enemy)
  95.   ###########################################################################
  96.           appear
  97.   ###########################################################################
  98.         else
  99.           self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  100.           @width = bitmap.width
  101.           @height = bitmap.height
  102.           self.ox = @width / 2
  103.           self.oy = @height
  104.         end
  105.         @battler_visible = true
  106.   ###########################################################################
  107.       end
  108.     end
  109.     # 可见的情况下
  110.     if @battler_visible
  111.       # 逃跑
  112.       if @battler.hidden
  113.         $game_system.se_play($data_system.escape_se)
  114.         escape
  115.         @battler_visible = false
  116.       end
  117.       # 白色闪烁
  118.       if @battler.white_flash
  119.         whiten
  120.         @battler.white_flash = false
  121.       end
  122.       # 动画
  123.       if @battler.animation_id != 0
  124.         animation = $data_animations[@battler.animation_id]
  125.         animation(animation, @battler.animation_hit)
  126.         @battler.animation_id = 0
  127.       end
  128.       # 伤害
  129.       if @battler.damage_pop
  130.         damage(@battler.damage, @battler.critical)
  131.         @battler.damage = nil
  132.         @battler.critical = false
  133.         @battler.damage_pop = false
  134.       end
  135.   ###########################################################################
  136.       # korapusu
  137.       if @battler.damage == nil and @battler.dead?
  138.         if @battler.is_a?(Game_Enemy)
  139.           $game_system.se_play($data_system.enemy_collapse_se)
  140.           collapse
  141.         else
  142.           $game_system.se_play($data_system.actor_collapse_se)
  143.           # 角色战斗图变为角色ID+"Dead"的名字的战斗图
  144.           self.bitmap = RPG::Cache.battler(@battler.id.to_s + "Dead", @battler_hue)
  145.           @width = bitmap.width
  146.           @height = bitmap.height
  147.           self.ox = @width / 2
  148.           self.oy = @height
  149.         end
  150.         @battler_visible = false
  151.   ###########################################################################
  152.       end
  153.     end
  154.     # 设置活动块的坐标
  155.     self.x = @battler.screen_x
  156.     self.y = @battler.screen_y
  157.     self.z = @battler.screen_z
  158.   end
  159. end
复制代码


直接用不行,请问该如何整合?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2008-6-17
帖子
200
4
 楼主| 发表于 2008-9-18 02:56:56 | 只看该作者
自顶询问。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-9-14
帖子
72
5
发表于 2008-9-18 03:00:55 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2008-6-17
帖子
200
6
 楼主| 发表于 2008-9-18 03:05:07 | 只看该作者
以下引用弑宁雷于2008-9-17 19:00:55的发言:

去掉#和#之间的所有字包括#   

在sprite battler最下 去掉END
自己放进去.发现错误看看有没有相似的.就去掉

再不行的话..错哪部分删哪部分!......

真是强人……阁下怎么不说让我直接开个新工程复制脚本过去?
这样一点冲突都没了。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-9-14
帖子
72
7
发表于 2008-9-18 03:10:26 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2008-6-17
帖子
200
8
 楼主| 发表于 2008-9-18 05:11:17 | 只看该作者
继续…询问…
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2008-6-17
帖子
200
9
 楼主| 发表于 2008-9-19 18:44:01 | 只看该作者
继续询问…
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-24 02:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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