赞 | 0 |
VIP | 0 |
好人卡 | 2 |
积分 | 2 |
经验 | 2541 |
最后登录 | 2023-7-22 |
在线时间 | 173 小时 |
Lv1.梦旅人 天空之神
- 梦石
- 0
- 星屑
- 156
- 在线时间
- 173 小时
- 注册时间
- 2009-5-3
- 帖子
- 612
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 小鱼子 于 2010-9-24 10:22 编辑
- #先声明一下,这属于一时胡写的,可能没有沉影的好,大家勿喷
- 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.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.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 = 432)
- gw = width * @hp / actor.maxhp
- gc1 = text_color(28)
- gc2 = text_color(24)
- self.bitmap.fill_rect(x+15, y + 24 - 8, width, 6, text_color(19))
- self.bitmap.gradient_fill_rect(x+15, 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
复制代码 截图
|
评分
-
查看全部评分
|