Код:
#==============================================================================
# MOG VX - Scene Title Screen Miria V2.0
#==============================================================================
# By Moghunter
# http://www.atelier-rgss.com/
#==============================================================================
# Tela de Titulo animado
#==============================================================================
# 1 - Crie uma pasta chamada de TITLE (Graphics/Title)
# 2 - Dentro desta pasta devem conter as seguintes imagens
#
# Title #Imagem que contem o texto do titulo
# Transition #Imagem da transição de tela
# Plane1 #Imagem da camada 1
# Plane2 #Imagem da camada 2
# Plane3 #Imagem da camada 3
# Title_Command #Imagem do menu seleção NEW GAME
#
#==============================================================================
# Histórico
# v2.0 - Melhor codificação.
#==============================================================================
module MOG_VX01
# Tempo de transição.
TT = 120
#Ativar movimento de Onda no texto do titulo.
# (true = Ativar ou false = Desativar)
TWAVE = true
#Opacidade da imagem camada 1.
TPLANE1_OPA = 255
#Opacidade da imagem camada 2.
TPLANE2_OPA = 200
#Opacidade da imagem camada 3
TPLANE3_OPA = 170
# Velocidade de movimento da camada 1 na horizontal.
TPLANE1_X = 1
# Velocidade de movimento da camada 1 na vertical.
TPLANE1_Y = 0
# Velocidade de movimento da camada 2 na horizontal.
TPLANE2_X = 2
# Velocidade de movimento da camada 2 na vertical.
TPLANE2_Y = 0
# Velocidade de movimento da camada 2 na horizontal.
TPLANE3_X = 4
# Velocidade de movimento da camada 2 na vertical.
TPLANE3_Y = 0
# Posição do comando
COMMAND_POS = [0, 220]
end
#===============================================================================
# ■ Cache
#===============================================================================
module Cache
def self.title(filename)
load_bitmap("Graphics/Title/", filename)
end
end
#===============================================================================
# ■ Scene_Title
#===============================================================================
class Scene_Title < Scene_Base
include MOG_VX01
#--------------------------------------------------------------------------
# ● Start
#--------------------------------------------------------------------------
def start
super
load_database
create_game_objects
check_continue
create_title_graphic
create_command_window
create_command_sprite
play_title_music
end
#--------------------------------------------------------------------------
# ● post_start
#--------------------------------------------------------------------------
def post_start
super
open_command_window
end
#--------------------------------------------------------------------------
# ● create_title_graphic
#--------------------------------------------------------------------------
def create_title_graphic
@sprite_title = Sprite.new
@sprite_title.bitmap = Cache.title("Title")
@sprite_title.opacity = 0
@sprite = Plane.new
@sprite.bitmap = Cache.title("Plane1")
@sprite2 = Plane.new
@sprite2.bitmap = Cache.title("Plane2")
@sprite3 = Plane.new
@sprite3.bitmap = Cache.title("Plane3")
@sprite.opacity = TPLANE1_OPA
@sprite2.opacity = TPLANE2_OPA
@sprite3.opacity = TPLANE3_OPA
@sprite.z = 1
@sprite2.z = 2
@sprite3.z = 3
@sprite_title.z = 5
if TWAVE == true
@sprite_title.wave_amp = 8
@sprite_title.wave_length = 240
@sprite_title.wave_speed = 320
end
end
#--------------------------------------------------------------------------
# ● create_command_sprite
#--------------------------------------------------------------------------
def create_command_sprite
@com_image = Cache.title("Title_Command")
@com_bitmap = Bitmap.new(@com_image.width,@com_image.height)
@com_width = @com_image.width
@com_height = @com_image.height / 3
@com_src_rect = Rect.new(0, @command_window.index * @com_height, @com_width, @com_height)
@com_bitmap.blt(0,0, @com_image, @com_src_rect)
@com = Sprite.new
@com.bitmap = @com_bitmap
@com.opacity = 0
@com.x = COMMAND_POS[0]
@com.y = COMMAND_POS[1]
@com.z = 4
end
#--------------------------------------------------------------------------
# ● pre_terminate
#--------------------------------------------------------------------------
def pre_terminate
super
close_command_window
end
#--------------------------------------------------------------------------
# ● perform_transition
#--------------------------------------------------------------------------
def perform_transition
Graphics.transition(TT , "Graphics/Title/Transition")
end
#--------------------------------------------------------------------------
# ● update
#--------------------------------------------------------------------------
def update
super
@command_window.update
update_sprite_command
@sprite_title.opacity += 2
@com.opacity += 2 if @sprite_title.opacity > 150
@sprite.ox += TPLANE1_X
@sprite.oy += TPLANE1_Y
@sprite2.ox += TPLANE2_X
@sprite2.oy += TPLANE2_Y
@sprite3.ox += TPLANE3_X
@sprite3.oy += TPLANE3_Y
@sprite_title.update if TWAVE == true
if Input.trigger?(Input::C)
case @command_window.index
when 0
command_new_game
when 1
command_continue
when 2
command_shutdown
end
end
end
#--------------------------------------------------------------------------
# ● update_sprite_command
#--------------------------------------------------------------------------
def update_sprite_command
return if @sprite_index == @command_window.index
@sprite_index = @command_window.index
@com.bitmap.clear
@com_src_rect = Rect.new(0, @command_window.index * @com_height, @com_width, @com_height)
@com_bitmap.blt(0,0, @com_image, @com_src_rect)
end
#--------------------------------------------------------------------------
# ● update_slide
#--------------------------------------------------------------------------
def update_slide
@sprite.ox += TPLANE1_X
@sprite.oy += TPLANE1_Y
@sprite2.ox += TPLANE2_X
@sprite2.oy += TPLANE2_Y
@sprite3.ox += TPLANE3_X
@sprite3.oy += TPLANE3_Y
@sprite_title.update if TWAVE == true
end
#--------------------------------------------------------------------------
# ● load_database
#--------------------------------------------------------------------------
def load_database
$data_actors = load_data("Data/Actors.rvdata")
$data_classes = load_data("Data/Classes.rvdata")
$data_skills = load_data("Data/Skills.rvdata")
$data_items = load_data("Data/Items.rvdata")
$data_weapons = load_data("Data/Weapons.rvdata")
$data_armors = load_data("Data/Armors.rvdata")
$data_enemies = load_data("Data/Enemies.rvdata")
$data_troops = load_data("Data/Troops.rvdata")
$data_states = load_data("Data/States.rvdata")
$data_animations = load_data("Data/Animations.rvdata")
$data_common_events = load_data("Data/CommonEvents.rvdata")
$data_system = load_data("Data/System.rvdata")
$data_areas = load_data("Data/Areas.rvdata")
end
#--------------------------------------------------------------------------
# ● load_bt_database
#--------------------------------------------------------------------------
def load_bt_database
$data_actors = load_data("Data/BT_Actors.rvdata")
$data_classes = load_data("Data/BT_Classes.rvdata")
$data_skills = load_data("Data/BT_Skills.rvdata")
$data_items = load_data("Data/BT_Items.rvdata")
$data_weapons = load_data("Data/BT_Weapons.rvdata")
$data_armors = load_data("Data/BT_Armors.rvdata")
$data_enemies = load_data("Data/BT_Enemies.rvdata")
$data_troops = load_data("Data/BT_Troops.rvdata")
$data_states = load_data("Data/BT_States.rvdata")
$data_animations = load_data("Data/BT_Animations.rvdata")
$data_common_events = load_data("Data/BT_CommonEvents.rvdata")
$data_system = load_data("Data/BT_System.rvdata")
end
#--------------------------------------------------------------------------
# ● create_game_objects
#--------------------------------------------------------------------------
def create_game_objects
$game_temp = Game_Temp.new
$game_message = Game_Message.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.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
end
#--------------------------------------------------------------------------
# ● check_continue
#--------------------------------------------------------------------------
def check_continue
@continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
end
#--------------------------------------------------------------------------
# ● dispose_title_graphic
#--------------------------------------------------------------------------
def dispose_title_graphic
@sprite.bitmap.dispose
@sprite2.bitmap.dispose
@sprite3.bitmap.dispose
@com.bitmap.dispose
@sprite_title.bitmap.dispose
@sprite.dispose
@sprite2.dispose
@sprite3.dispose
@com.dispose
@sprite_title.dispose
end
#--------------------------------------------------------------------------
# ● create_command_window
#--------------------------------------------------------------------------
def create_command_window
s1 = Vocab::new_game
s2 = Vocab::continue
s3 = Vocab::shutdown
@command_window = Window_Command.new(172, [s1, s2, s3])
@command_window.opacity = 0
@command_window.contents_opacity = 0
if @continue_enabled
@command_window.index = 1
else
@command_window.draw_item(1, false)
end
end
#--------------------------------------------------------------------------
# ● title_fade
#--------------------------------------------------------------------------
def title_fade
if TWAVE == true
@sprite_title.wave_amp = 34
@sprite_title.wave_length =120
@sprite_title.wave_speed = 800
end
for i in 0..120
@sprite_title.opacity -= 3
@sprite_title.update if TWAVE == true
@com.opacity -= 3
case @command_window.index
when 0
@sprite.zoom_x += 0.01
@sprite.zoom_y += 0.01
@sprite2.zoom_x += 0.01
@sprite2.zoom_y += 0.01
@sprite3.zoom_x += 0.01
@sprite3.zoom_y += 0.01
@sprite.ox += 2
@sprite.oy += 2
@sprite2.ox += 2
@sprite2.oy += 2
@sprite3.ox += 2
@sprite3.oy += 2
end
update_slide
Graphics.update
end
end
#--------------------------------------------------------------------------
# ● dispose_command_window
#--------------------------------------------------------------------------
def dispose_command_window
@command_window.dispose
end
#--------------------------------------------------------------------------
# ● open_command_window
#--------------------------------------------------------------------------
def open_command_window
@command_window.open
begin
@command_window.update
Graphics.update
end until @command_window.openness == 255
end
#--------------------------------------------------------------------------
# ● close_command_window
#--------------------------------------------------------------------------
def close_command_window
@command_window.close
begin
@command_window.update
Graphics.update
end until @command_window.openness == 0
end
#--------------------------------------------------------------------------
# ● play_title_music
#--------------------------------------------------------------------------
def play_title_music
$data_system.title_bgm.play
RPG::BGS.stop
RPG::ME.stop
end
#--------------------------------------------------------------------------
# ● confirm_player_location
#--------------------------------------------------------------------------
def confirm_player_location
if $data_system.start_map_id == 0
print "プレイヤーの初期位置が設定されていません。"
exit
end
end
#--------------------------------------------------------------------------
# ● command_new_game
#--------------------------------------------------------------------------
def command_new_game
confirm_player_location
Sound.play_decision
title_fade
$game_party.setup_starting_members
$game_map.setup($data_system.start_map_id)
$game_player.moveto($data_system.start_x, $data_system.start_y)
$game_player.refresh
$scene = Scene_Map.new
RPG::BGM.fade(1500)
close_command_window
Graphics.fadeout(60)
Graphics.wait(40)
Graphics.frame_count = 0
RPG::BGM.stop
$game_map.autoplay
end
#--------------------------------------------------------------------------
# ● command_continue
#--------------------------------------------------------------------------
def command_continue
if @continue_enabled
Sound.play_decision
title_fade
$scene = Scene_File.new(false, true, false)
else
Sound.play_buzzer
end
end
#--------------------------------------------------------------------------
# ● command_shutdown
#--------------------------------------------------------------------------
def command_shutdown
Sound.play_decision
title_fade
RPG::BGM.fade(800)
RPG::BGS.fade(800)
RPG::ME.fade(800)
$scene = nil
end
#--------------------------------------------------------------------------
# ● battle_test
#--------------------------------------------------------------------------
def battle_test
load_bt_database
create_game_objects
Graphics.frame_count = 0
$game_party.setup_battle_test_members
$game_troop.setup($data_system.test_troop_id)
$game_troop.can_escape = true
$game_system.battle_bgm.play
snapshot_for_background
$scene = Scene_Battle.new
end
end
$mog_rgssvx_title_screen_miria = true
Социальные закладки