[RGSS]Pause Buton by NO
2 participantes
Página 1 de 1
[RGSS]Pause Buton by NO
Você pode pausar o jogo,como nos jogos de Arcade...
Depois de Colocar o Script e so apertar a tecla "A" ou "X" no RMXP
para modificar a tecla e só dar uma olhada no script.
flw
- Código:
#┌───────────────────────────────────────
#│
#│ 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
Depois de Colocar o Script e so apertar a tecla "A" ou "X" no RMXP
para modificar a tecla e só dar uma olhada no script.
flw
R@ph@el- Número de Mensagens : 62
Idade : 33
Localização : Belo Horizonte
Data de inscrição : 11/12/2008
RMB Games
Nível de Reputação: 1
Reputação:
(10/100)
Gamescore:
(0/0)
Re: [RGSS]Pause Buton by NO
Eu tinha um desses mas era com a tecla P lol
+1 Rep
+1 Rep
Dark Dudu- Número de Mensagens : 385
Idade : 30
Localização : São Vicente - SP
Especialidade : Eventos
Data de inscrição : 01/12/2008
RMB Games
Nível de Reputação: 2
Reputação:
(61/100)
Gamescore:
(0/0)
Tópicos semelhantes
» [RGSS] GTA Loading
» [RGSS] XAS Hero v3.3
» [RGSS] KGC DamageAlter
» [RGSS] KGC Module
» [RGSS]New Game+
» [RGSS] XAS Hero v3.3
» [RGSS] KGC DamageAlter
» [RGSS] KGC Module
» [RGSS]New Game+
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos