class Window_background < Window_Base #-------------------------------------------------------------------------- # ● 初始化对象 #-------------------------------------------------------------------------- def initialize super(0, 0, 544,416) self.opacity = 0 refresh end #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def refresh contents.clear bitmap = Cache.load_bitmap("Graphics/System/","Menubackground") rect = Rect.new(0, 0, 544,416) contents.blt(0,0, bitmap, rect, 255) bitmap.dispose end end
#encoding:utf-8 #============================================================================== # ■ Scene_Menu #------------------------------------------------------------------------------ # 菜单画面 #============================================================================== class Window_background < Window_Base #-------------------------------------------------------------------------- # ● 初始化对象 #-------------------------------------------------------------------------- def initialize super(0, 0, 544,416) self.opacity = 0 refresh end #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def refresh contents.clear bitmap = Cache.load_bitmap("Graphics/System/","Menubackground") rect = Rect.new(0, 0, 544,416) contents.blt(0,0, bitmap, rect, 255) bitmap.dispose end end class Scene_Menu < Scene_MenuBase #-------------------------------------------------------------------------- # ● 开始处理 #-------------------------------------------------------------------------- def start super create_command_window create_gold_window create_status_window create_MenuHelp_window end #-------------------------------------------------------------------------- # ● 生成帮助窗口 #-------------------------------------------------------------------------- def create_MenuHelp_window @Menuhelp_window = Window_MenuHelp.new @Menuhelp_window.x = 0 @Menuhelp_window.y = 0 end #-------------------------------------------------------------------------- # ● 生成指令窗口 #-------------------------------------------------------------------------- def create_command_window @command_window = Window_MenuCommand.new @command_window.x = 0 @command_window.y = 48 @command_window.set_handler(:item, method(:command_item)) @command_window.set_handler(:skill, method(:command_personal)) @command_window.set_handler(:equip, method(:command_personal)) @command_window.set_handler(:status, method(:command_personal)) @command_window.set_handler(:formation, method(:command_formation)) @command_window.set_handler(:save, method(:command_save)) @command_window.set_handler(:game_end, method(:command_game_end)) @command_window.set_handler(:cancel, method(:return_scene)) end #-------------------------------------------------------------------------- # ● 生成金钱窗口 #-------------------------------------------------------------------------- def create_gold_window @gold_window = Window_Gold.new @gold_window.x = 0 @gold_window.y = Graphics.height - @gold_window.height end #-------------------------------------------------------------------------- # ● 生成状态窗口 #-------------------------------------------------------------------------- def create_status_window #@status_window = Window_MenuStatus.new(@command_window.width, 0) @status_window = Window_MenuStatus.new(@command_window.width, 48) end #-------------------------------------------------------------------------- # ● 指令“物品” #-------------------------------------------------------------------------- def command_item SceneManager.call(Scene_Item) end #-------------------------------------------------------------------------- # ● 指令“技能”“装备”“状态” #-------------------------------------------------------------------------- def command_personal @status_window.select_last @status_window.activate @status_window.set_handler(:ok, method(:on_personal_ok)) @status_window.set_handler(:cancel, method(:on_personal_cancel)) end #-------------------------------------------------------------------------- # ● 指令“整队” #-------------------------------------------------------------------------- def command_formation @status_window.select_last @status_window.activate @status_window.set_handler(:ok, method(:on_formation_ok)) @status_window.set_handler(:cancel, method(:on_formation_cancel)) end #-------------------------------------------------------------------------- # ● 指令“存档” #-------------------------------------------------------------------------- def command_save SceneManager.call(Scene_Save) end #-------------------------------------------------------------------------- # ● 指令“结束游戏” #-------------------------------------------------------------------------- def command_game_end SceneManager.call(Scene_End) end #-------------------------------------------------------------------------- # ● 个人指令“确定” #-------------------------------------------------------------------------- def on_personal_ok case @command_window.current_symbol when :skill SceneManager.call(Scene_Skill) when :equip SceneManager.call(Scene_Equip) when :status SceneManager.call(Scene_Status) end end #-------------------------------------------------------------------------- # ● 个人指令“取消” #-------------------------------------------------------------------------- def on_personal_cancel @status_window.unselect @command_window.activate end #-------------------------------------------------------------------------- # ● 整队“确定” #-------------------------------------------------------------------------- def on_formation_ok if @status_window.pending_index >= 0 $game_party.swap_order(@status_window.index, @status_window.pending_index) @status_window.pending_index = -1 @status_window.redraw_item(@status_window.index) else @status_window.pending_index = @status_window.index end @status_window.activate end #-------------------------------------------------------------------------- # ● 整队“取消” #-------------------------------------------------------------------------- def on_formation_cancel if @status_window.pending_index >= 0 @status_window.pending_index = -1 @status_window.activate else @status_window.unselect @command_window.activate end end end
喵呜喵5 发表于 2013-3-29 21:47
Scene_MenuBase第29、30行:
@background_sprite.bitmap = SceneManager.background_bitmap
@background_sp ...
def create_background @background_sprite = Sprite.new @background_sprite.bitmap = SceneManager.background_bitmap @background_sprite.color.set(16, 16, 16, 128) end
j433463 发表于 2013-3-30 00:50
画图的方法是读取位图用 load_bitmap 或 system 或 Picture 都看您自己的考量,反正就是 Cache 到 bitmap ...
#-------------------------------------------------------------------------- # ● 获取窗口背景图 #-------------------------------------------------------------------------- def wa bitmap = Cache.load_bitmap("Graphics/WindowBack/", "back01") rect = Rect.new(0, 0,bitmap.width, bitmap.height) contents.blt(0, 0, bitmap, rect, 255) bitmap.dispose end
#-------------------------------------------------------------------------- # ● 绘制项目 #-------------------------------------------------------------------------- def draw_item(index) wa actor = $game_party.members[index] enabled = $game_party.battle_members.include?(actor) rect = item_rect(index) draw_item_background(index) draw_actor_HalfBody(actor, rect.x, rect.y, enabled) draw_actor_name(actor,rect.x+35, rect.y+279) draw_actor_icons(actor,rect.x+35,rect.y+233+line_height*2) draw_actor_level(actor,rect.x+103, rect.y+233+line_height*2) draw_actor_hp(actor,rect.x+35, rect.y+233+line_height*3) end
#encoding:utf-8 #============================================================================== # ■ Scene_Menu #------------------------------------------------------------------------------ # 选单画面 #============================================================================== class Scene_Menu < Scene_MenuBase #-------------------------------------------------------------------------- # ● 开始处理 #-------------------------------------------------------------------------- def start super create_background create_background2 create_command_window create_gold_window create_status_window end #-------------------------------------------------------------------------- # ● 生成背景 #-------------------------------------------------------------------------- def create_background @background_sprite = Sprite.new @background_sprite.bitmap = Cache.load_bitmap("Graphics/Pictures/","1-032-72") @background_sprite.color.set(0, 0, 0, 0) end #-------------------------------------------------------------------------- # ● 生成背景 #-------------------------------------------------------------------------- def create_background2 @background_sprite2 = Sprite.new @background_sprite2.bitmap = Cache.load_bitmap("Graphics/Pictures/","player_06") @background_sprite2.color.set(0, 0, 0, 0) @background_sprite2.z += 1 @background_sprite2.x = Graphics.width - @background_sprite2.width @background_sprite2.y = Graphics.height - @background_sprite2.height end #-------------------------------------------------------------------------- # ● 结束背景 #-------------------------------------------------------------------------- def dispose_background @background_sprite2.dispose @background_sprite.dispose end #-------------------------------------------------------------------------- # ● 生成指令视窗 #-------------------------------------------------------------------------- def create_command_window @command_window = Window_MenuCommand.new @command_window.set_handler(:item, method(:command_item)) @command_window.set_handler(:skill, method(:command_personal)) @command_window.set_handler(:equip, method(:command_personal)) @command_window.set_handler(:status, method(:command_personal)) @command_window.set_handler(:formation, method(:command_formation)) @command_window.set_handler(:save, method(:command_save)) @command_window.set_handler(:game_end, method(:command_game_end)) @command_window.set_handler(:cancel, method(:return_scene)) @command_window.y = 100 end #-------------------------------------------------------------------------- # ● 生成金钱视窗 #-------------------------------------------------------------------------- def create_gold_window @gold_window = Window_Gold.new @gold_window.x = 0 @gold_window.y = Graphics.height - @gold_window.height end #-------------------------------------------------------------------------- # ● 生成状态视窗 #-------------------------------------------------------------------------- def create_status_window @status_window = Window_MenuStatus.new(@command_window.width, 0) @status_window.y = 62 end #-------------------------------------------------------------------------- # ● 指令“物品” #-------------------------------------------------------------------------- def command_item SceneManager.call(Scene_Item) end #-------------------------------------------------------------------------- # ● 指令“技能”“装备”“状态” #-------------------------------------------------------------------------- def command_personal @status_window.select_last @status_window.activate @status_window.set_handler(:ok, method(:on_personal_ok)) @status_window.set_handler(:cancel, method(:on_personal_cancel)) end #-------------------------------------------------------------------------- # ● 指令“整队” #-------------------------------------------------------------------------- def command_formation @status_window.select_last @status_window.activate @status_window.set_handler(:ok, method(:on_formation_ok)) @status_window.set_handler(:cancel, method(:on_formation_cancel)) end #-------------------------------------------------------------------------- # ● 指令“存档” #-------------------------------------------------------------------------- def command_save SceneManager.call(Scene_Save) end #-------------------------------------------------------------------------- # ● 指令“结束游戏” #-------------------------------------------------------------------------- def command_game_end SceneManager.call(Scene_End) end #-------------------------------------------------------------------------- # ● 个人指令“确定” #-------------------------------------------------------------------------- def on_personal_ok case @command_window.current_symbol when :skill SceneManager.call(Scene_Skill) when :equip SceneManager.call(Scene_Equip) when :status SceneManager.call(Scene_Status) end end #-------------------------------------------------------------------------- # ● 个人指令“取消” #-------------------------------------------------------------------------- def on_personal_cancel @status_window.unselect @command_window.activate end #-------------------------------------------------------------------------- # ● 整队“确定” #-------------------------------------------------------------------------- def on_formation_ok if @status_window.pending_index >= 0 $game_party.swap_order(@status_window.index, @status_window.pending_index) @status_window.pending_index = -1 @status_window.redraw_item(@status_window.index) else @status_window.pending_index = @status_window.index end @status_window.activate end #-------------------------------------------------------------------------- # ● 整队“取消” #-------------------------------------------------------------------------- def on_formation_cancel if @status_window.pending_index >= 0 @status_window.pending_index = -1 @status_window.activate else @status_window.unselect @command_window.activate end end end
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |