赞 | 0 |
VIP | 37 |
好人卡 | 0 |
积分 | 1 |
经验 | 48662 |
最后登录 | 2012-11-14 |
在线时间 | 3 小时 |
Lv1.梦旅人 SB們大家好<
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 3 小时
- 注册时间
- 2008-1-7
- 帖子
- 457
|
- class Spriteset_Battle
- #--------------------------------------------------------------------------
- # ● 生成敌人活动块
- #--------------------------------------------------------------------------
- def create_enemies
- @enemy_sprites = []
- @enemy_hpbar_sprites = []
- for enemy in $game_troop.members.reverse
- @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
- @enemy_hpbar_sprites.push(Sprite_Hpbar.new(@viewport1, enemy))
- end
- end
- #--------------------------------------------------------------------------
- # ● 刷新敌人活动块
- #--------------------------------------------------------------------------
- def update_enemies
- for sprite in @enemy_sprites + @enemy_hpbar_sprites
- sprite.update
- end
- end
-
- #--------------------------------------------------------------------------
- # ● 释放敌人活动块
- #--------------------------------------------------------------------------
- def dispose_enemies
- for sprite in @enemy_sprites + @enemy_hpbar_sprites
- sprite.dispose
- end
- end
-
-
- end
- #==============================================================================
- # ■ Sprite_Sprite_Hpbar
- #------------------------------------------------------------------------------
- # 血条显示
- #==============================================================================
- class Sprite_Hpbar < Sprite_Base
- #--------------------------------------------------------------------------
- # ● 定量
- #--------------------------------------------------------------------------
- #--------------------------------------------------------------------------
- # ● 定义实例变量
- #--------------------------------------------------------------------------
- attr_accessor :battler
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # viewport : 视口
- # battler : 战斗者 (Game_Battler)
- #--------------------------------------------------------------------------
- def initialize(viewport, battler = nil)
- super(viewport)
- @battler = battler
- @name = @battler.name
- @hp = @battler.hp
- self.bitmap = Bitmap.new(100,50)
- # self.bitmap.fill_rect(0,0,100,50,Color.new(255,0,0,255))
- self.bitmap.draw_text(0,10,100,20,@battler.name ,1)
- draw_actor_hp_gauge(@battler, 0, 15, 50)
-
- self.x = @battler.screen_x - 30
- self.y = @battler.screen_y - self.bitmap.height / 2
- # self.ox = self.bitmap.width
- # self.oy = self.bitmap.height
- self.z = @battler.screen_z + 5
- end
- #--------------------------------------------------------------------------
- # ● 获取文字色
- # n : 文字色编号 (0~31)
- #--------------------------------------------------------------------------
- def text_color(n)
- windowskin = Cache.system("Window")
- x = 64 + (n % 8) * 8
- y = 96 + (n / 8) * 8
- return windowskin.get_pixel(x, y)
- end
-
- #--------------------------------------------------------------------------
- # ● HP矩形的描画
- # actor : 角色
- # x : 描画目标 X 坐标
- # y : 描画目标 Y 坐标
- # width : 宽
- #--------------------------------------------------------------------------
- def draw_actor_hp_gauge(actor, x, y, width = 120)
- gw = width * @hp / actor.maxhp
- gc1 = text_color(28)
- gc2 = text_color(24)
- self.bitmap.fill_rect(x, y + 24 - 8, width, 6, text_color(19))
- self.bitmap.gradient_fill_rect(x, y + 24 - 8, gw, 6, gc1, gc2)
- end
-
-
-
- #--------------------------------------------------------------------------
- # ● 释放
- #--------------------------------------------------------------------------
- def dispose
- if self.bitmap != nil
- self.bitmap.dispose
- end
- super
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面
- #--------------------------------------------------------------------------
- def update
- super
- if @battler == nil
- self.bitmap = nil
- else
- update_battler_bitmap
- end
- end
- #--------------------------------------------------------------------------
- # ● 刷新传送的位图数据
- #--------------------------------------------------------------------------
- def update_battler_bitmap
- if @battler.dead? or @battler.hidden
- self.opacity = 0
- end
- if [email protected]? and [email protected] and self.opacity == 0
- self.opacity = 255
- end
-
- if @hp != @battler.hp or @name != @battler.name
- @name = @battler.name
- @hp = @battler.hp
- self.bitmap.clear
- self.bitmap.draw_text(0,10,100,20,@battler.name ,1)
- draw_actor_hp_gauge(@battler, 0, 15, 50)
- end
- end
- end
复制代码
很简单的血条
顺便问好SailCat大大 版主对此帖的认可:『热心帮助』,积分『+20』。 |
|