HUNTERJue Feb 14, 2013 11:02 pm
Super Usuario
Escena de Titulo Rotativa
COMENTARIO:
Esta es un espectacular Script para el RMXP
que lo que hace es cambiar la escena de
titulo por una mas original y algo totalmente
diferente ademas recomendado por la comunidad
HUNTER MAKER.
VIDEO DE MUESTRA:
SCRIPT:
- Código:
#===============================================================#
# | Tela de título Rotativa | #
# por Cezar ¢ #
#===============================================================#
# Instruções de uso:
# » Apague o script original "Scene_Title" e cole este no lugar.
# » Tenhas as imagens "backtitle" "menu1" "menu2" "menu3" "menu4"
# na pasta "Title" do seu projeto.
# » Configure as posições das imagens e velocidade de movimento
# nas opções abaixo.
# » Escreva informações do seu projeto logo abaixo em "Texto".
module Menu_rotativo
Posição_X_1 = 300 #Posição X Da tela para o Item que estiver na posição de escolha 1 (Selecionado)
Posição_Y_1 = 275 #Posição Y Da tela para o Item que estiver na posição de escolha 1 (Selecionado)
Posição_X_2 = 250 #Posição X Da tela para o Item que estiver na posição de escolha 2 (Esquerda)
Posição_Y_2 = 250 #Posição Y Da tela para o Item que estiver na posição de escolha 2 (Esquerda)
Posição_X_3 = 300 #Posição X Da tela para o Item que estiver na posição de escolha 3 (Fundo)
Posição_Y_3 = 225 #Posição Y Da tela para o Item que estiver na posição de escolha 3 (Fundo)
Posição_X_4 = 350 #Posição X Da tela para o Item que estiver na posição de escolha 4 (Direita)
Posição_Y_4 = 250 #Posição Y Da tela para o Item que estiver na posição de escolha 4 (Direita)
Texto = "Descreva informações do seu projeto aqui"
Velocidade_X = 2 #Velocidade de movimento das imagens na horizontal
Velocidade_Y = 1 #Velocidade de movimento das imagens na vertical
end
class Scene_Title
#--------------------------------------------------------------------------
# Processamento Principal (Fórmula copiada do Scene_Title original)
#--------------------------------------------------------------------------
def main
# Se estiver em Teste de Batalha
if $BTEST
battle_test
return
end
# Carregar o Banco de Dados
$data_actors = load_data("Data/Actors.rxdata")
$data_classes = load_data("Data/Classes.rxdata")
$data_skills = load_data("Data/Skills.rxdata")
$data_items = load_data("Data/Items.rxdata")
$data_weapons = load_data("Data/Weapons.rxdata")
$data_armors = load_data("Data/Armors.rxdata")
$data_enemies = load_data("Data/Enemies.rxdata")
$data_troops = load_data("Data/Troops.rxdata")
$data_states = load_data("Data/States.rxdata")
$data_animations = load_data("Data/Animations.rxdata")
$data_tilesets = load_data("Data/Tilesets.rxdata")
$data_common_events = load_data("Data/CommonEvents.rxdata")
$data_system = load_data("Data/System.rxdata")
# Criar um Sistema
$game_system = Game_System.new
# Criar Background
@backtitle = Sprite.new
@backtitle.bitmap = RPG::Cache.title("backtitle")
# Criar Gráficos
# » Gráfico de "Info" (3)
@menu4 = Sprite.new
@menu4.bitmap = RPG::Cache.title("menu4")
@menu4.x = 350
@menu4.y = 250
@menu4.opacity = 80
# » Gráfico de "Sair" (2)
@menu3 = Sprite.new
@menu3.bitmap = RPG::Cache.title("menu3")
@menu3.x = 300
@menu3.y = 235
@menu3.opacity = 80
# » Gráfico de "Continuar" (1)
@menu2 = Sprite.new
@menu2.bitmap = RPG::Cache.title("menu2")
@menu2.x = 250
@menu2.y = 250
@menu2.opacity = 120
# » Gráfico de "Novo Jogo" (0)
@menu1 = Sprite.new
@menu1.bitmap = RPG::Cache.title("menu1")
@menu1.x = 300
@menu1.y = 270
# Criar Menu janela de escolhas
s1 = ""
s2 = ""
s3 = ""
s4 = ""
@control_window = Window_Command.new(180,[s1,s2,s3,s4])
@control_window.opacity = 0
@control_window.x = -400
# O comando Continuar (s2) tem uma determinante
# Aqui é checado se existe algum arquivo de save
# Se estiver habilitado, tornar @continue_enabled verdadeiro; se estiver
# desabilitado, tornar falso
@continue_enabled = false
for i in 0..3
if FileTest.exist?("Save#{i+1}.rxdata")
@continue_enabled = true
end
end
# Se Continuar estiver habilitado, mover o cursor para "Continuar"
# Se estiver desabilitado, o texto será mostrado em cinza
if @continue_enabled
@control_window.index = 1
else
@control_window.disable_item(1)
end
# Reproduzir BGM de Título
$game_system.bgm_play($data_system.title_bgm)
# Parar de reproduzir BGS e ME
Audio.me_stop
Audio.bgs_stop
# Executar transição
Graphics.transition
# Loop principal
loop do
# Atualizar a tela de jogo
Graphics.update
# Atualizar a entrada de informações
Input.update
# Atualizar o frame
update
# Abortar o loop caso a tela tenha sido alterada
if $scene != self
break
end
end
# Preparar para transição
Graphics.freeze
# Exibir a janela de comandos
@control_window.dispose
# Exibir o gráfico de Título
@backtitle.bitmap.dispose
@backtitle.dispose
@menu1.bitmap.dispose
@menu1.dispose
@menu2.bitmap.dispose
@menu2.dispose
@menu3.bitmap.dispose
@menu3.dispose
@menu4.bitmap.dispose
@menu4.dispose
end
#Definir atualização dos gráficos
def update
if Input.trigger?(Input::RIGHT)
if @control_window.index < 3
@control_window.index +=1
else
@control_window.index = 0
end
end
if Input.trigger?(Input::LEFT)
if @control_window.index > 0
@control_window.index -=1
else
@control_window.index = 3
end
end
case @control_window.index
#Caso 1 - Novo Jogo
when 0
#Definir Origem
@menu1.z = 4
@menu2.z = 3
@menu3.z = 2
@menu4.z = 1
#Definir Opacidade
@menu1.opacity = 255
@menu2.opacity = 120
@menu4.opacity = 120
@menu3.opacity = 70
#Definir Posição para 300/270 (Posição Selecionada)
if @menu1.x < Menu_rotativo::Posição_X_1
@menu1.x += Menu_rotativo::Velocidade_X
elsif @menu1.x > Menu_rotativo::Posição_X_1
@menu1.x -= Menu_rotativo::Velocidade_X
else
@menu1.x = Menu_rotativo::Posição_X_1
end
if @menu1.y < Menu_rotativo::Posição_Y_1
@menu1.y += Menu_rotativo::Velocidade_Y
elsif @menu1.y > Menu_rotativo::Posição_Y_1
@menu1.y -= Menu_rotativo::Velocidade_Y
else
@menu1.y = Menu_rotativo::Posição_Y_1
end
#Definir Posição para 250/250 (Posição Esquerda)
if @menu2.x < Menu_rotativo::Posição_X_2
@menu2.x += Menu_rotativo::Velocidade_X
elsif @menu2.x > Menu_rotativo::Posição_X_2
@menu2.x -= Menu_rotativo::Velocidade_X
else
@menu2.x = Menu_rotativo::Posição_X_2
end
if @menu2.y < Menu_rotativo::Posição_Y_2
@menu2.y += Menu_rotativo::Velocidade_Y
elsif @menu2.y > Menu_rotativo::Posição_Y_2
@menu2.y -= Menu_rotativo::Velocidade_Y
else
@menu2.y = Menu_rotativo::Posição_Y_2
end
#Definir Posição para 350/250 (Posição Direita)
if @menu4.x < Menu_rotativo::Posição_X_4
@menu4.x += Menu_rotativo::Velocidade_X
elsif @menu4.x > Menu_rotativo::Posição_X_4
@menu4.x -= Menu_rotativo::Velocidade_X
else
@menu4.x = Menu_rotativo::Posição_X_4
end
if @menu4.y < Menu_rotativo::Posição_Y_4
@menu4.y += Menu_rotativo::Velocidade_Y
elsif @menu4.y > Menu_rotativo::Posição_Y_4
@menu4.y -= Menu_rotativo::Velocidade_Y
else
@menu4.y = Menu_rotativo::Posição_Y_4
end
#Definir Posição para 300/235 (Posição de Fundo)
if @menu3.x < Menu_rotativo::Posição_X_3
@menu3.x += Menu_rotativo::Velocidade_X
elsif @menu3.x > Menu_rotativo::Posição_X_3
@menu3.x -= Menu_rotativo::Velocidade_X
else
@menu3.x = Menu_rotativo::Posição_X_3
end
if @menu3.y < Menu_rotativo::Posição_Y_3
@menu3.y += Menu_rotativo::Velocidade_Y
elsif @menu3.y > Menu_rotativo::Posição_Y_3
@menu3.y -= Menu_rotativo::Velocidade_Y
else
@menu3.y = Menu_rotativo::Posição_Y_3
end
#Caso 2 - Continuar
when 1
@menu2.z = 4
@menu3.z = 3
@menu4.z = 2
@menu1.z = 1
#checkpoint
@menu1.opacity = 120
@menu2.opacity = 255
@menu4.opacity = 70
@menu3.opacity = 120
#Definir Posição para 300/270 (Posição Selecionada)
if @menu2.x < Menu_rotativo::Posição_X_1
@menu2.x += Menu_rotativo::Velocidade_X
elsif @menu2.x > Menu_rotativo::Posição_X_1
@menu2.x -= Menu_rotativo::Velocidade_X
else
@menu2.x = Menu_rotativo::Posição_X_1
end
if @menu2.y < Menu_rotativo::Posição_Y_1
@menu2.y += Menu_rotativo::Velocidade_Y
elsif @menu2.y > Menu_rotativo::Posição_Y_1
@menu2.y -= Menu_rotativo::Velocidade_Y
else
@menu2.y = Menu_rotativo::Posição_Y_1
end
#Definir Posição para 250/250 (Posição Esquerda)
if @menu3.x < Menu_rotativo::Posição_X_2
@menu3.x += Menu_rotativo::Velocidade_X
elsif @menu3.x > Menu_rotativo::Posição_X_2
@menu3.x -= Menu_rotativo::Velocidade_X
else
@menu3.x = Menu_rotativo::Posição_X_2
end
if @menu3.y < Menu_rotativo::Posição_Y_2
@menu3.y += Menu_rotativo::Velocidade_Y
elsif @menu3.y > Menu_rotativo::Posição_Y_2
@menu3.y -= Menu_rotativo::Velocidade_Y
else
@menu3.y = Menu_rotativo::Posição_Y_2
end
#Definir Posição para 350/250 (Posição Direita)
if @menu1.x < Menu_rotativo::Posição_X_4
@menu1.x += Menu_rotativo::Velocidade_X
elsif @menu1.x > Menu_rotativo::Posição_X_4
@menu1.x -= Menu_rotativo::Velocidade_X
else
@menu1.x = Menu_rotativo::Posição_X_4
end
if @menu1.y < Menu_rotativo::Posição_Y_4
@menu1.y += Menu_rotativo::Velocidade_Y
elsif @menu1.y > Menu_rotativo::Posição_Y_4
@menu1.y -= Menu_rotativo::Velocidade_Y
else
@menu1.y = Menu_rotativo::Posição_Y_4
end
#Definir Posição para 300/235 (Posição de Fundo)
if @menu4.x < Menu_rotativo::Posição_X_3
@menu4.x += Menu_rotativo::Velocidade_X
elsif @menu4.x > Menu_rotativo::Posição_X_3
@menu4.x -= Menu_rotativo::Velocidade_X
else
@menu4.x = Menu_rotativo::Posição_X_3
end
if @menu4.y < Menu_rotativo::Posição_Y_3
@menu4.y += Menu_rotativo::Velocidade_Y
elsif @menu4.y > Menu_rotativo::Posição_Y_3
@menu4.y -= Menu_rotativo::Velocidade_Y
else
@menu4.y = Menu_rotativo::Posição_Y_3
end
#Caso 3 - Sair
when 2
@menu3.z = 4
@menu4.z = 3
@menu1.z = 2
@menu2.z = 1
#checkpoint
@menu1.opacity = 70
@menu2.opacity = 120
@menu3.opacity = 255
@menu4.opacity = 120
#Definir Posição para 300/270 (Posição Selecionada)
if @menu3.x < Menu_rotativo::Posição_X_1
@menu3.x += Menu_rotativo::Velocidade_X
elsif @menu3.x > Menu_rotativo::Posição_X_1
@menu3.x -= Menu_rotativo::Velocidade_X
else
@menu3.x = Menu_rotativo::Posição_X_1
end
if @menu3.y < Menu_rotativo::Posição_Y_1
@menu3.y += Menu_rotativo::Velocidade_Y
elsif @menu3.y > Menu_rotativo::Posição_Y_1
@menu3.y -= Menu_rotativo::Velocidade_Y
else
@menu3.y = Menu_rotativo::Posição_Y_1
end
#Definir Posição para 250/250 (Posição Esquerda)
if @menu4.x < Menu_rotativo::Posição_X_2
@menu4.x += Menu_rotativo::Velocidade_X
elsif @menu4.x > Menu_rotativo::Posição_X_2
@menu4.x -= Menu_rotativo::Velocidade_X
else
@menu4.x = Menu_rotativo::Posição_X_2
end
if @menu4.y < Menu_rotativo::Posição_Y_2
@menu4.y += Menu_rotativo::Velocidade_Y
elsif @menu4.y > Menu_rotativo::Posição_Y_2
@menu4.y -= Menu_rotativo::Velocidade_Y
else
@menu4.y = Menu_rotativo::Posição_Y_2
end
#Definir Posição para 350/250 (Posição Direita)
if @menu2.x < Menu_rotativo::Posição_X_4
@menu2.x += Menu_rotativo::Velocidade_X
elsif @menu2.x > Menu_rotativo::Posição_X_4
@menu2.x -= Menu_rotativo::Velocidade_X
else
@menu2.x = Menu_rotativo::Posição_X_4
end
if @menu2.y < Menu_rotativo::Posição_Y_4
@menu2.y += Menu_rotativo::Velocidade_Y
elsif @menu2.y > Menu_rotativo::Posição_Y_4
@menu2.y -= Menu_rotativo::Velocidade_Y
else
@menu2.y = Menu_rotativo::Posição_Y_4
end
#Definir Posição para 300/235 (Posição de Fundo)
if @menu1.x < Menu_rotativo::Posição_X_3
@menu1.x += Menu_rotativo::Velocidade_X
elsif @menu1.x > Menu_rotativo::Posição_X_3
@menu1.x -= Menu_rotativo::Velocidade_X
else
@menu1.x = Menu_rotativo::Posição_X_3
end
if @menu1.y < Menu_rotativo::Posição_Y_3
@menu1.y += Menu_rotativo::Velocidade_Y
elsif @menu1.y > Menu_rotativo::Posição_Y_3
@menu1.y -= Menu_rotativo::Velocidade_Y
else
@menu1.y = Menu_rotativo::Posição_Y_3
end
#Caso 4 - Info
when 3
@menu4.z = 4
@menu3.z = 3
@menu2.z = 2
@menu1.z = 1
#checkpoint
@menu1.opacity = 120
@menu2.opacity = 70
@menu3.opacity = 120
@menu4.opacity = 255
#Definir Posição para 300/270 (Posição Selecionada)
if @menu4.x < Menu_rotativo::Posição_X_1
@menu4.x += Menu_rotativo::Velocidade_X
elsif @menu4.x > Menu_rotativo::Posição_X_1
@menu4.x -= Menu_rotativo::Velocidade_X
else
@menu4.x = Menu_rotativo::Posição_X_1
end
if @menu4.y < Menu_rotativo::Posição_Y_1
@menu4.y += Menu_rotativo::Velocidade_Y
elsif @menu4.y > Menu_rotativo::Posição_Y_1
@menu4.y -= Menu_rotativo::Velocidade_Y
else
@menu4.y = Menu_rotativo::Posição_Y_1
end
#Definir Posição para 250/250 (Posição Esquerda)
if @menu1.x < Menu_rotativo::Posição_X_2
@menu1.x += Menu_rotativo::Velocidade_X
elsif @menu1.x > Menu_rotativo::Posição_X_2
@menu1.x -= Menu_rotativo::Velocidade_X
else
@menu1.x = Menu_rotativo::Posição_X_2
end
if @menu1.y < Menu_rotativo::Posição_Y_2
@menu1.y += Menu_rotativo::Velocidade_Y
elsif @menu1.y > Menu_rotativo::Posição_Y_2
@menu1.y -= Menu_rotativo::Velocidade_Y
else
@menu1.y = Menu_rotativo::Posição_Y_2
end
#Definir Posição para 350/250 (Posição Direita)
if @menu3.x < Menu_rotativo::Posição_X_4
@menu3.x += Menu_rotativo::Velocidade_X
elsif @menu3.x > Menu_rotativo::Posição_X_4
@menu3.x -= Menu_rotativo::Velocidade_X
else
@menu3.x = Menu_rotativo::Posição_X_4
end
if @menu3.y < Menu_rotativo::Posição_Y_4
@menu3.y += Menu_rotativo::Velocidade_Y
elsif @menu3.y > Menu_rotativo::Posição_Y_4
@menu3.y -= Menu_rotativo::Velocidade_Y
else
@menu3.y = Menu_rotativo::Posição_Y_4
end
#Definir Posição para 300/235 (Posição de Fundo)
if @menu2.x < Menu_rotativo::Posição_X_3
@menu2.x += Menu_rotativo::Velocidade_X
elsif @menu2.x > Menu_rotativo::Posição_X_3
@menu2.x -= Menu_rotativo::Velocidade_X
else
@menu2.x = Menu_rotativo::Posição_X_3
end
if @menu2.y < Menu_rotativo::Posição_Y_3
@menu2.y += Menu_rotativo::Velocidade_Y
elsif @menu2.y > Menu_rotativo::Posição_Y_3
@menu2.y -= Menu_rotativo::Velocidade_Y
else
@menu2.y = Menu_rotativo::Posição_Y_3
end
end
def comando_info
p Menu_rotativo::Texto
end
def command_new_game
# Reproduzir SE de OK
$game_system.se_play($data_system.decision_se)
# Parar BGM
Audio.bgm_stop
# Aqui o contador de frames é resetado para que se conte o Tempo de Jogo
Graphics.frame_count = 0
# Criar cada tipo de objetos do jogo
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
# Configurar Grupo Inicial
$game_party.setup_starting_members
# Configurar posição inicial no mapa
$game_map.setup($data_system.start_map_id)
# Aqui o Jogador é movido até a posição inical configurada
$game_player.moveto($data_system.start_x, $data_system.start_y)
# Atualizar Jogador
$game_player.refresh
# Rodar, de acordo com o mapa, a BGM e a BGS
$game_map.autoplay
# Atualizar mapa (executar processos paralelos)
$game_map.update
# Mudar para a tela do mapa
$scene = Scene_Map.new
end
def command_continue
# Se Continuar estiver desabilitado
unless @continue_enabled
# Reproduzir SE de erro
$game_system.se_play($data_system.buzzer_se)
return
end
# Reproduzir SE de OK
$game_system.se_play($data_system.decision_se)
# Mudar para a tela de Carregar arquivos
$scene = Scene_Load.new
end
def command_exit
# Reproduzir SE de OK
$game_system.se_play($data_system.decision_se)
# Diminuir o volume de BGM, BGS e ME
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
# Sair
$scene = nil
end
# Atualizar a janela de comandos
@control_window.update
# Se o botão C for pressionado
if Input.trigger?(Input::C)
# ramificação pela posição do cursor
case @control_window.index
when 0 # Novo Jogo
command_new_game
when 1 # Continuar
command_continue
when 2
command_exit
when 3 # Sair
comando_info
end
end
end
end
def battle_test #Copiado do Scene_Title original
# Carregar Banco de Dados para o Teste de Batalha
$data_actors = load_data("Data/BT_Actors.rxdata")
$data_classes = load_data("Data/BT_Classes.rxdata")
$data_skills = load_data("Data/BT_Skills.rxdata")
$data_items = load_data("Data/BT_Items.rxdata")
$data_weapons = load_data("Data/BT_Weapons.rxdata")
$data_armors = load_data("Data/BT_Armors.rxdata")
$data_enemies = load_data("Data/BT_Enemies.rxdata")
$data_troops = load_data("Data/BT_Troops.rxdata")
$data_states = load_data("Data/BT_States.rxdata")
$data_animations = load_data("Data/BT_Animations.rxdata")
$data_tilesets = load_data("Data/BT_Tilesets.rxdata")
$data_common_events = load_data("Data/BT_CommonEvents.rxdata")
$data_system = load_data("Data/BT_System.rxdata")
# Aqui o contador de frames é resetado para que se conte o Tempo de Jogo
Graphics.frame_count = 0
# Criar cada tipo de objetos do jogo
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
# Configurar Grupo para o Teste de Batalha
$game_party.setup_battle_test_members
# Definir o ID do Grupo de Inimigos, a possibilidade de fuga e o Fundo de
# Batalha
$game_temp.battle_troop_id = $data_system.test_troop_id
$game_temp.battle_can_escape = true
$game_map.battleback_name = $data_system.battleback_name
# Reproduzri SE de início de batalha
$game_system.se_play($data_system.battle_start_se)
# Reproduzir BGM de batalha
$game_system.bgm_play($game_system.battle_bgm)
# Mudar para a tela de batalha
$scene = Scene_Battle.new
end
CREDITOS:
Cezar
Saludos nos leemos.
Última edición por HUNTER el Mar Feb 19, 2013 5:06 pm, editado 1 vez