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

Project1

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

[已经过期] 战斗计时器的问题

[复制链接]

Lv2.观梦者

梦石
0
星屑
596
在线时间
797 小时
注册时间
2014-7-1
帖子
578

开拓者

跳转到指定楼层
1
发表于 2016-11-5 14:16:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 jiushiainilip19 于 2016-11-5 15:41 编辑

战斗中能不能做多个计时器
然后在  Scene_Battle 1 中和原来的计时器一样自己来使用

搜索了一下没有找到需要的帖子,所以请教一下!

自己照着XP里面的弄了一个 但是在Spriteset_Battle中会报错下面的错误
应该是未定义
不过我不在Spriteset_Battle中来给他添加板块的话就不会报错
而且游戏战斗中正常来使用 就是不会显示时间!
这是咋回事?

RUBY 代码复制
  1. class Game_System
  2.   attr_accessor :timers                    # 计时器
  3.   attr_accessor :timers_working            # 计时器执行中的标志
  4.  
  5.   alias mohuaiyuan2016115_initialize initialize
  6.   def initialize
  7.     @timers = 0
  8.     @timers_working = false
  9.     mohuaiyuan2016115_initialize
  10.   end
  11.  
  12.   alias mohuaiyuan2016115_update update
  13.   def update
  14.     # 计时器减 1
  15.     if @timers_working and @timers > 0
  16.       @timers -= 1
  17.     end
  18.     mohuaiyuan2016115_update
  19.   end
  20.  
  21. end

RUBY 代码复制
  1. class Sprite_Timers < Sprite
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化对像
  4.   #--------------------------------------------------------------------------
  5.   def initialize
  6.     super
  7.     self.bitmap = Bitmap.new(88, 48)#88
  8.     self.bitmap.font.name = "方正隶变_GBK"#Arial
  9.     self.bitmap.font.size = 28
  10.     self.x = 460 - self.bitmap.width
  11.     self.y = 55
  12.     self.z = 500
  13.     update
  14.   end
  15.   #--------------------------------------------------------------------------
  16.   # ● 释放
  17.   #--------------------------------------------------------------------------
  18.   def dispose
  19.     if self.bitmap != nil
  20.       self.bitmap.dispose
  21.     end
  22.     super
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 刷新画面
  26.   #--------------------------------------------------------------------------
  27.   def update
  28.     super
  29.     # 设置计时器执行中为可见
  30.     self.visible = $game_system.timers_working
  31.     # 如果有必要再次描绘计时器
  32.     if $game_system.timers / Graphics.frame_rate != @total_sec
  33.       # 清除窗口内容
  34.       self.bitmap.clear
  35.       # 计算总计秒数
  36.       @total_sec = $game_system.timers / Graphics.frame_rate
  37.       # 生成计时器显示用字符串
  38.       min = @total_sec / 60
  39.       sec = @total_sec % 60
  40.       text = sprintf("%02d:%02d", min, sec)
  41.       # 描绘计时器
  42.       self.bitmap.font.color.set(255, 255, 255)
  43.       self.bitmap.draw_text(self.bitmap.rect, text, 1)
  44.     end
  45.   end
  46. end

RUBY 代码复制
  1. #==============================================================================
  2. # ■ Spriteset_Battle
  3. #------------------------------------------------------------------------------
  4. #  处理战斗画面的活动块的类。本类在 Scene_Battle 类
  5. # 的内部使用。
  6. #==============================================================================
  7.  
  8. class Spriteset_Battle
  9.   #--------------------------------------------------------------------------
  10.   # ● 定义实例变量
  11.   #--------------------------------------------------------------------------
  12.   attr_reader   :viewport1                # 敌人方的显示端口
  13.   attr_reader   :viewport2                # 角色方的显示端口
  14.   #--------------------------------------------------------------------------
  15.   # ● 初始化变量
  16.   #--------------------------------------------------------------------------
  17.   def initialize
  18.     # 生成显示端口
  19.     @viewport1 = Viewport.new(0, 0, 640, 480) #改动
  20.     @viewport2 = Viewport.new(0, 0, 640, 480)
  21.     @viewport3 = Viewport.new(0, 0, 640, 480)
  22.     @viewport4 = Viewport.new(0, 0, 640, 480)
  23.     @viewport5 = Viewport.new(0, 0, 640, 480)#5人制战斗
  24.     @viewport2.z = 101
  25.     @viewport3.z = 200
  26.     @viewport4.z = 5000
  27.     # 生成战斗背景活动块
  28.     @battleback_sprite = Sprite.new(@viewport1)
  29.     @magic_sprite = Sprite.new(@viewport1) #改动
  30.     @magics_sprite = Sprite.new(@viewport1) #改动
  31.     @lagic_sprite = Sprite.new(@viewport1) #改动
  32.  
  33.     # 生成敌人活动块
  34.     @enemy_sprites = []
  35.     for enemy in $game_troop.enemies.reverse
  36.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  37.     end
  38.     # 生成敌人活动块
  39.     @actor_sprites = []
  40.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  41.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  42.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  43.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  44.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  45.     # 生成天候
  46.     @weather = RPG::Weather.new(@viewport1)
  47.     # 生成图片活动块
  48.     @picture_sprites = []
  49.     for i in 51..100
  50.       @picture_sprites.push(Sprite_Picture.new(@viewport3,
  51.         $game_screen.pictures[i]))
  52.     end
  53.     # 生成计时器块
  54.     @timer_sprite = Sprite_Timer.new
  55. ################################
  56.     @timers_sprite = Sprite_Timers.new
  57. ################################
  58.     # 刷新画面
  59.     update
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 释放
  63.   #--------------------------------------------------------------------------
  64.   def dispose
  65.     # 如果战斗背景位图存在的情况下就释放
  66.     if @battleback_sprite.bitmap != nil
  67.       @battleback_sprite.bitmap.dispose
  68.     end
  69.     # 释放战斗背景活动块
  70.     @battleback_sprite.dispose
  71.     @magic_sprite.dispose #改动
  72.     @magics_sprite.dispose #改动
  73.     @lagic_sprite.dispose #改动
  74.     # 释放敌人活动块、角色活动块
  75.     for sprite in @enemy_sprites + @actor_sprites
  76.       sprite.dispose
  77.     end
  78.     # 释放天候
  79.     @weather.dispose
  80.     # 释放图片活动块
  81.     for sprite in @picture_sprites
  82.       sprite.dispose
  83.     end
  84.     # 释放计时器活动块
  85.     @timer_sprite.dispose
  86. ####################################
  87.     @timers_sprite.dispose
  88. #################################
  89.     # 释放显示端口
  90.     @viewport1.dispose
  91.     @viewport2.dispose
  92.     @viewport3.dispose
  93.     @viewport4.dispose
  94.     @viewport5.dispose
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● 显示效果中判定
  98.   #--------------------------------------------------------------------------
  99.   def effect?
  100.     # 如果是在显示效果中的话就返回 true
  101.     for sprite in @enemy_sprites + @actor_sprites
  102.       return true if sprite.effect?
  103.     end
  104.     return false
  105.   end
  106.   #--------------------------------------------------------------------------
  107.   # ● 刷新画面
  108.   #--------------------------------------------------------------------------
  109.   def update
  110.     # 刷新角色的活动块 (对应角色的替换)
  111.     @actor_sprites[0].battler = $game_party.actors[0]
  112.     @actor_sprites[1].battler = $game_party.actors[1]
  113.     @actor_sprites[2].battler = $game_party.actors[2]
  114.     @actor_sprites[3].battler = $game_party.actors[3]
  115.     @actor_sprites[4].battler = $game_party.actors[4]#5人制度战斗
  116.  
  117.  
  118.     # 战斗背景的文件名与现在情况有差异的情况下
  119.     if @battleback_name != $game_temp.battleback_name
  120.       @battleback_name = $game_temp.battleback_name
  121.       if @battleback_sprite.bitmap != nil
  122.         @battleback_sprite.bitmap.dispose
  123.       end
  124.       @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
  125.       @battleback_sprite.src_rect.set(0, 0, 640, 480)
  126.     end
  127.  
  128.  
  129.     # 刷新战斗者的活动块
  130.     for sprite in @enemy_sprites + @actor_sprites
  131.       sprite.update
  132.     end
  133.     # 刷新天气图形
  134.     @weather.type = $game_screen.weather_type
  135.     @weather.max = $game_screen.weather_max
  136.     @weather.update
  137.     # 刷新图片活动块
  138.     for sprite in @picture_sprites
  139.       sprite.update
  140.     end
  141.     # 刷新计时器活动块
  142.     @timer_sprite.update
  143. ####################################
  144.     @timers_sprite.update
  145. ######################################
  146.     # 设置画面的色调与震动位置
  147.     @viewport1.tone = $game_screen.tone
  148.     @viewport1.ox = $game_screen.shake
  149.     # 设置画面的闪烁色
  150.     @viewport4.color = $game_screen.flash_color
  151.     # 刷新显示端口
  152.     @viewport1.update
  153.     @viewport2.update
  154.     @viewport4.update
  155.   end
  156. end

QQ截图20161105152901.png (3.49 KB, 下载次数: 9)

QQ截图20161105152901.png
学习使我疲劳,打工使我疲惫,恋爱使我伤身,吸烟伤我肺腑,饮酒损我形象,旅游使我破费,月底不见铜板,只有在论坛里面看看各种大佬才能使我进去
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-11-14 16:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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