# ▼▲▼ MeLT. プラグインA1 : コマンドストリーム ▼▲▼ # #============================================================================== # □ Window_MenuCommand #============================================================================== class Window_MenuCommand < Window_Selectable # # 縁取り色 # HEMCOLOR = Color.new(0,48,96,255) # 無効化判定用 セーブ名 SAVE = "セーブ" #-------------------------------------------------------------------------- # --- ウィンドウスライディングを搭載 --- #-------------------------------------------------------------------------- include XRXS_WindowSliding #-------------------------------------------------------------------------- # ○ オブジェクト初期化 #-------------------------------------------------------------------------- def initialize @sprites = [] max = XRXS_MeLT.commands.size super(16, 64, 160, max * 32 + 32) self.opacity = 0 self.index = 0 @item_max = max @column_max = 1 @slide_objects = @sprites @slide_x_limit = 16 @slidein_count = 4 + @item_max @slideout_count = 0 w = 160 h = 32 z = 101 x = self.x - 32 y = self.y + 16 for caption in XRXS_MeLT.captions sprite = Sprite.new sprite.bitmap = Bitmap.new(w,h) color = HEMCOLOR if caption == SAVE if $game_system.save_disabled color = color.dup color.alpha = 64 end sprite.bitmap.font.color.alpha = $game_system.save_disabled ? 160 : 255 end sprite.bitmap.draw_hemming_text(0,0,w,h,caption,1,color) sprite.opacity = 0 sprite.z = z sprite.x = x sprite.y = y x -= 8 y += 32 @sprites.push(sprite) end self.z = z + 1 end #-------------------------------------------------------------------------- # ○ 解放とスライドアウト #-------------------------------------------------------------------------- def dispose @sprites.each{|sprite| sprite.dispose } super end def slideout! self.index = -1 super end #-------------------------------------------------------------------------- # ○ 決定とキャンセル #-------------------------------------------------------------------------- def decide! update while @slidein_count > 0 @decision_index = self.index @sprites.each{|sprite| sprite.opacity = 96 } @sprites[@decision_index].opacity = 255 if @decision_index >= 0 end def cancel! @decision_index = nil @sprites.each{|sprite| sprite.opacity = 255 } end end