RPG Master Brasil
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[RGSS]Pause Buton by NO

2 participantes

Ir para baixo

[RGSS]Pause Buton by NO Empty [RGSS]Pause Buton by NO

Mensagem por R@ph@el Ter Dez 30, 2008 11:23 pm

Você pode pausar o jogo,como nos jogos de Arcade...

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
R@ph@el


Masculino 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:
[RGSS]Pause Buton by NO Left_bar_bleue10/100[RGSS]Pause Buton by NO Empty_bar_bleue  (10/100)
Gamescore:
[RGSS]Pause Buton by NO Left_bar_bleue0/0[RGSS]Pause Buton by NO Empty_bar_bleue  (0/0)

Ir para o topo Ir para baixo

[RGSS]Pause Buton by NO Empty Re: [RGSS]Pause Buton by NO

Mensagem por Dark Dudu Qua Dez 31, 2008 12:43 am

Eu tinha um desses mas era com a tecla P lol

+1 Rep
Dark Dudu
Dark Dudu


Masculino 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:
[RGSS]Pause Buton by NO Left_bar_bleue61/100[RGSS]Pause Buton by NO Empty_bar_bleue  (61/100)
Gamescore:
[RGSS]Pause Buton by NO Left_bar_bleue0/0[RGSS]Pause Buton by NO Empty_bar_bleue  (0/0)

https://rmbrasil.forumeiros.com

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos