Project1
标题:
战斗状态栏在地图中如何显示
[打印本页]
作者:
远恒
时间:
2009-1-1 23:54
标题:
战斗状态栏在地图中如何显示
#==============================================================================
# ■ Window_BattleStatus
#------------------------------------------------------------------------------
# 显示战斗画面同伴状态的窗口。
#==============================================================================
class Window_BattleStatus < Window_Base
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
@level_up_flags = [false, false, false, false]
#........................................................................
self.opacity = 0
@sta_back = []
@sta_output = []
@cp_output = []
@hp_bitmap = RPG::Cache.picture("../system/battle/hmcp/hp_bar.png")
@mp_bitmap = RPG::Cache.picture("../system/battle/hmcp/mp_bar.png")
@bitmap3 = RPG::Cache.picture("../system/battle/hmcp/底.png")
@cp_bitmap = RPG::Cache.picture("../system/battle/hmcp/cp_bar.png")
@cp_output = []
@cp_back_bar = Sprite.new
@cp_back_bar.bitmap = Bitmap.new("Graphics/system/battle/hmcp/cp_back_bar")
@cp_back_bar.x = 571
@cp_back_bar.y = 32
@cp_back_bar.z = self.z + 2
@actor_cp_sprite = []
@actor_cp_sprite_back = []
for actor_index in 1..$game_party.actors.size
@cp_output[actor_index] = Sprite.new
@cp_output[actor_index].bitmap = Bitmap.new(133, 78)
@cp_output[actor_index].x = 0 + (actor_index - 1) * 133
@cp_output[actor_index].y = 0 - 78 - 10
@cp_output[actor_index].z = self.z + 2
@cp_output[actor_index].bitmap.clear
@sta_back[actor_index] = Sprite.new
@sta_back[actor_index].bitmap = Bitmap.new("Graphics/System/Battle/sta_back/" + $game_party.actors[actor_index - 1].name + "战斗.png")
@sta_back[actor_index].x = 510
@sta_back[actor_index].y = 5 + (actor_index - 1) * 80
@sta_back[actor_index].z = self.z + 1
@sta_output[actor_index] = Sprite.new
@sta_output[actor_index].bitmap = Bitmap.new(133, 78)
@sta_output[actor_index].x = 505
@sta_output[actor_index].y = -36 + (actor_index - 1) * 80
@sta_output[actor_index].z = self.z + 2
@sta_output[actor_index].bitmap.clear
@sta_output[actor_index].bitmap.font.size = 10
@sta_output[actor_index].bitmap.font.name = "黑体"
hp_width = $game_party.actors[actor_index - 1].hp * @hp_bitmap.width/$game_party.actors[actor_index - 1].maxhp
hp_rect = Rect.new(0, 0, hp_width, 10)
mp_width = $game_party.actors[actor_index - 1].sp * @mp_bitmap.width/$game_party.actors[actor_index - 1].maxsp
mp_rect = Rect.new(0, 0, mp_width, 10)
@src_rect3 = Rect.new(0,0,@bitmap3.width, @bitmap3.height)
self.contents.blt(10,220, @bitmap3, @src_rect3)
@sta_output[actor_index].bitmap.blt(250, 44, @hp_bitmap, hp_rect)
@sta_output[actor_index].bitmap.blt(66, 64, @mp_bitmap, mp_rect)
@sta_output[actor_index].bitmap.blt(66, 54, @bitmap3, @src_rect3)
@sta_output[actor_index].bitmap.font.color.set(255, 0, 0)
@sta_output[actor_index].bitmap.draw_text(80, 31, 77, 11,$game_party.actors[actor_index - 1].hp.to_s + "/" + $game_party.actors[actor_index - 1].maxhp.to_s)
@sta_output[actor_index].bitmap.font.color.set(0, 0, 255)
@sta_output[actor_index].bitmap.draw_text(80, 51, 77, 11,$game_party.actors[actor_index - 1].sp.to_s + "/" + $game_party.actors[actor_index - 1].maxsp.to_s)
end
#........................................................................
refresh
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
def dispose
super
@hp_bitmap.bitmap.dispose
@hp_bitmap.dispose
@mp_bitmap.bitmap.dispose
@mp_bitmap.dispose
@cp_bitmap.bitmap.dispose
@cp_bitmap.dispose
for actor_index in 1..$game_party.actors.size
@sta_back[actor_index].bitmap.dispose
@sta_back[actor_index].dispose
@sta_output[actor_index].bitmap.dispose
@sta_output[actor_index].dispose
@cp_output[actor_index].bitmap.dispose
@cp_output[actor_index].dispose
end
end
#--------------------------------------------------------------------------
# ● 设置升级标志
# actor_index : 角色索引
#--------------------------------------------------------------------------
def level_up(actor_index)
@level_up_flags[actor_index] = true
end
#......................................................................
#--------------------------------------------------------------------------
# ● 设置正在攻击标志
# actor_index : 角色索引
#--------------------------------------------------------------------------
def in_atk(actor_index)
@sta_back[actor_index + 1].bitmap = Bitmap.new("Graphics/System/Battle/sta_back/" + $game_party.actors[actor_index].name + "战斗1.png")
end
#--------------------------------------------------------------------------
# ● 设置不在攻击标志
# actor_index : 角色索引
#--------------------------------------------------------------------------
def out_atk(actor_index)
@sta_back[actor_index + 1].bitmap = Bitmap.new("Graphics/System/Battle/sta_back/" + $game_party.actors[actor_index].name + "战斗.png")
end
#......................................................................
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
#......................................................................
actor_x = i * 160 + 145
actor_y = i * 80 + 220
@sta_output[i + 1].bitmap.clear
hp_width = $game_party.actors[i].hp * @hp_bitmap.width/$game_party.actors[i].maxhp
hp_rect = Rect.new(0, 0, hp_width, 100)
mp_width = $game_party.actors[i].sp * @mp_bitmap.width/$game_party.actors[i].maxsp
mp_rect = Rect.new(0, 0, mp_width, 100)
@sta_output[i + 1].bitmap.blt(66, 44, @hp_bitmap, hp_rect)
@sta_output[i + 1].bitmap.blt(66, 56, @mp_bitmap, mp_rect)
@sta_output[i + 1].bitmap.font.color.set(255, 0, 0)
#@sta_output[i + 1].bitmap.draw_text(80, 31, 77, 11,$game_party.actors[i].hp.to_s + "/" + $game_party.actors[i].maxhp.to_s)
@sta_output[i + 1].bitmap.font.color.set(0, 0, 255)
#@sta_output[i + 1].bitmap.draw_text(80, 51, 77, 11,$game_party.actors[i].sp.to_s + "/" + $game_party.actors[i].maxsp.to_s)
#......................................................................
if @level_up_flags[i]
self.contents.font.color = normal_color
self.contents.draw_text(0, 0, 640 , 480, "LEVEL UP!")
else
draw_actor_state(actor, 120, actor_y)
end
end
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
super
# 主界面的不透明度下降
if $game_temp.battle_main_phase
self.contents_opacity = 255 #if self.contents_opacity > 1
else
self.contents_opacity = 255 #if self.contents_opacity < 255
end
end
end
复制代码
请问如何在正常地图中也显示它.而不是只在战斗才显示这个状态栏 [LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
风花雪月
时间:
2009-1-2 00:15
http://rpg.blue/web/htm/news568.htm
是这个吧
作者:
远恒
时间:
2009-1-2 00:19
不是.{/pz}哪位大哥大姐会啊?教教我
作者:
风花雪月
时间:
2009-1-2 00:43
http://rpg.blue/web/htm/news816.htm
这次没错了……
作者:
IamI
时间:
2009-1-2 00:48
以下引用
风花雪月于2009-1-1 16:43:48
的发言:
http://rpg.blue/web/htm/news816.htm这次没错了……
KaMiSaMa的吗……总算是找到了一点价值。
作者:
远恒
时间:
2009-1-2 02:08
不是的..我是说改我那个脚本{/dk}
作者:
后知后觉
时间:
2009-1-2 04:28
找到Scene_Map
在 def main 的下面增加一行
@status_window = Window_BattleStatus.new
然后在35行左右有一句 @spriteset.dispose
在下面增加一行 @status_window.dispose
然后找到58行左右能看到 $game_screen.update
在下面增加一行 @status_window.update
这样就可以了,估计你会后悔要这样的效果的= =||b [LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者:
远恒
时间:
2009-1-2 07:36
太太太太太感谢您了!{/dk}
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1