以下引用rmxpcainiao于2009-1-23 19:28:10的发言:
本贴悬赏额度如下:VIP:0 积分:100
参照了简单横版脚本,并做了改动。
Class Window_Base
......
def draw_actor_graphic(actor, x, y)
bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
cw = bitmap.width
ch = bitmap.height/2 #实现半身像
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
......
Class Window_BattleStatus
......
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
actor = $game_party.actors
actor_x = i * 160 + 4
draw_actor_graphic(actor,actor_x+20,120)#战斗状态栏添加头像,坐标自己调
draw_actor_name(actor, actor_x, 0)
draw_actor_hp(actor, actor_x, 32, 120)
draw_actor_sp(actor, actor_x, 64, 120)
if @level_up_flags
self.contents.font.color = normal_color
self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
else
draw_actor_state(actor, actor_x, 96)
end
end
end
......
class Sprite_Battler
......
def update
super
# 战斗者为 nil 的情况下
if @battler == nil
self.bitmap = nil
loop_animation(nil)
return
end
# 文件名和色相与当前情况有差异的情况下
if @battler.battler_name != @battler_name or
@battler.battler_hue != @battler_hue
# 获取、设置位图
@battler_name = @battler.battler_name
@battler_hue = @battler.battler_hue
#使状态栏头像与战斗画面头像使用不同的图片。
self.bitmap = RPG::Cache.battler("复件"+@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width /2
self.oy = @height
# 如果是战斗不能或者是隐藏状态就把透明度设置成 0
if @battler.dead? or @battler.hidden
self.opacity = 0
end
end
......
有个必要条件,虐待美工,必须给所有战斗图另外设置新图,文件必须是前缀名(程序中是复件)+原图文件名的命名格式,我偷懒只设置了一个,其余都是复制。
很肤浅的修改,不知有没有更好的办法。
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |