Sefirot22 Membro
Mensagens : 35 Data de inscrição : 08/02/2008
| Assunto: Pausa no jogo Sex Fev 08, 2008 3:52 pm | |
| Esse não é um script muito importante ams ajuda quem quer. - Citação :
- #┌───────────────────────────────────────
#│ #│ TRCS.19 #│ "ポーズ画面" ver1.40 (2006.03.12 h22) #│ by NO #│ http://chobi.net/~no/ #│ #└─────────────────────────────────────── # BGMがない場合にも対応 module TRCS19_STOPPING #-------------------------------------------------------------------------- # ○ 設定項目 #--------------------------------------------------------------------------
# ポーズボタン (文字列指定) PAUSE_BUTTON = "X"
# ポーズテキスト PAUSE_TEXT = "pause"
# ポーズテキストカラー # → [R, G, B, alpha] で設定 PAUSE_TEXT_COLOR = [255, 255, 255, 255]
# ポーズ 開始SE PAUSE_START_SE = "002-System02"
# ポーズ 終了SE PAUSE_END_SE = "003-System03"
# ポーズ時の背景色 # → [R, G, B, alpha] で設定 (通常時と比べた相対値) PAUSE_TONE = [-64, -64, -64, 0]
# ポーズ時はプレイ時間を停止させる # → YES = true, NO = false STOP_TIME = false #allow/disallow freezing play time during pause
# ポーズ中の音量低下率(%指定) VOL_DOWN_RATE = 50
# ポーズ許可スイッチ名 # → スイッチIDを指定することも可能 PAUSE_SW_NAME = "ポーズ許可" #Set a switch name to allow/disallow pause
# ポーズボタン定義 PAUSE_BUTTON2 = eval("Input::#{PAUSE_BUTTON}")
#-------------------------------------------------------------------------- # ○ 画面停止 #-------------------------------------------------------------------------- def stopping # SE を演奏 Audio.se_play("Audio/SE/" + PAUSE_START_SE) if !PAUSE_START_SE.empty? # BGMが演奏中の場合 if $game_system.playing_bgm != nil and !$game_system.playing_bgm.name.empty? # 演奏中BGMの音量を退避 dummy_vol = $game_system.playing_bgm.volume # 音量を下げて演奏 new_vol = (dummy_vol * VOL_DOWN_RATE / 100).to_i Audio.bgm_play("Audio/BGM/" + $game_system.playing_bgm.name, new_vol) end # 現在の色調を退避 dummy_tone = $game_screen.tone.clone
# ビューポートの作成 viewport1 = Viewport.new(0, 0, 640, 480) viewport1.z = 10000 viewport1.tone = Tone.new(*PAUSE_TONE) # フィルター用スプライトの作成 sprite1 = Sprite.new(viewport1) sprite1.tone = Tone.new(0, 0, 0, 0) sprite1.bitmap = Bitmap.new(640, 480) # 文字サイズ決定 width = sprite1.bitmap.text_size(PAUSE_TEXT).width
# ビューポートの作成 viewport2 = Viewport.new((640 - width) / 2, (480 - 32) / 2, width, 32) viewport2.z = 10000 # 文字用スプライトの作成 sprite2 = Sprite.new(viewport2) sprite2.bitmap = Bitmap.new(width, 32)
# 文字描画 sprite2.bitmap.font = Font.new sprite2.bitmap.font.color = Color.new(*PAUSE_TEXT_COLOR) sprite2.bitmap.draw_text(0, 0, width, 32, PAUSE_TEXT) # メインループ loop do # ゲーム画面を更新 Graphics.update # 入力情報を更新 Input.update # ボタンが押された場合 if Input.trigger?(PAUSE_BUTTON2) # SE を演奏 Audio.se_play("Audio/SE/" + PAUSE_START_SE) if !PAUSE_START_SE.empty? # BGMが演奏中の場合 if $game_system.playing_bgm != nil and !$game_system.playing_bgm.name.empty? # 音量を戻して演奏 Audio.bgm_play("Audio/BGM/" + $game_system.playing_bgm.name, dummy_vol) end # ループ脱出 break end end
# 色調を元に戻す sprite1.viewport.tone = dummy_tone # 解放 sprite1.dispose sprite2.dispose sprite1 = nil sprite2 = nil end #-------------------------------------------------------------------------- # ○ 画面停止が可能か #-------------------------------------------------------------------------- def can_stop? if PAUSE_SW_NAME.is_a?(Numeric) return ($game_switches[PAUSE_SW_NAME] rescue true) else return ($game_switches[$data_system.switches.index(PAUSE_SW_NAME)] rescue true) end end end #================================================= ============================= # ■ Scene_Map #================================================= =============================
class Scene_Map #-------------------------------------------------------------------------- # ○ インクルード #-------------------------------------------------------------------------- include TRCS19_STOPPING #-------------------------------------------------------------------------- # ○ フレーム更新 #-------------------------------------------------------------------------- alias trcs19_update update def update # ボタンが押された場合 if Input.trigger?(PAUSE_BUTTON2) and can_stop? # フレームカウントを退避 tmp = Graphics.frame_count # 画面停止 stopping # ポーズ中はプレイ時間を進めない場合 if STOP_TIME # フレームカウントを修正 Graphics.frame_count = tmp end end # 呼び戻す trcs19_update end end #================================================= ============================= # ■ Scene_Battle #================================================= =============================
class Scene_Battle #-------------------------------------------------------------------------- # ○ インクルード #-------------------------------------------------------------------------- include TRCS19_STOPPING #-------------------------------------------------------------------------- # ○ フレーム更新 #-------------------------------------------------------------------------- alias trcs19_update update def update # ボタンが押された場合 if Input.trigger?(PAUSE_BUTTON2) and can_stop? # フレームカウントを退避 tmp = Graphics.frame_count # 画面停止 stopping # ポーズ中はプレイ時間を進めない場合 if STOP_TIME # フレームカウントを修正 Graphics.frame_count = tmp end end # 呼び戻す trcs19_update end end pra pausa aperte a ou x | |
|