Project1
标题:
血条脚本的问题
[打印本页]
作者:
w970822
时间:
2008-8-4 03:10
标题:
血条脚本的问题
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
复制代码
这个脚本如何改血条颜色,
还有个bug,有两个或以上的怪物,只有第一个怪能攻击,其他都变摆设叻- -
求解决办法
作者:
狼族峰少
时间:
2008-8-4 03:36
提示:
作者被禁止或删除 内容自动屏蔽
作者:
w970822
时间:
2008-8-4 03:39
以下引用
狼族峰少于2008-8-3 19:36:45
的发言:
你的脚本怎么把我的聊天记录弄进去了~~~
谢谢提醒- -
作者:
火鸡三毛老大
时间:
2009-6-12 08:00
这个好像不完整……
你列出一下你用过的其他脚本的名称……
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1