Discovery Title Screen 0.8.3
Rekx/TheRexion
Rekx/TheRexion
Introduction
There really isn't much to it: it's a title screen with a few nice additions.
Features
- Lots of customization
- Prettyness
Screenshots

How to Use
Just place it above main and copy the pictures into your Pictures folder.
Demo

Click me!
Script
Spoiler
Code:
#==============================================================================
# Discovery Title Screen
# Version 0.8.3
# Author: Rekx/TheRexion
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Instructions:
# Place in scripts, copy over image files or create your own.
# Customize until pleased.
# ???
# PROFI--Yeah, I'll just stop now...
#
# Credits to:
# Johnny Mercy
# HungrySnake for helping me do what I could not and optimizing
# the script for easier customization with the graphics.
#==============================================================================
module Rekx
module CustomTitle
# Falling objects on or off
FALLING = false
# Graphics arrays. Format: ["Selected","Unselected"(,"Disabled (only continue)")]
NEW_GAME_GRAPHICS = ["new_game","new_game_off"]
CONTINUE_GRAPHICS = ["continue","continue_off","continue_disabled"]
SHUTDOWN_GRAPHICS = ["exit","exit_off"]
# Three options side by side or three on top of each other
STYLE = 2 # 1 or 2
# 1 = Left Aligned, 2 = Centered, 3 = Right Aligned. Only applies for Style 2
PLACEMENT = 3
# Would you like the title image to be wavy?
WAVY = true
# if WAVY is true, you can customize how it will wave
WAVE_AMP = 20
WAVE_LENGTH = 240
WAVE_SPEED = 160
# Fade out other commands when a certain command is selected
FADE_OUT_COMMANDS = false
# How quickly things fade in and out
# I recommend 5 - 30, anything else is too slow or too fast.
# Only if FADE_OUT_COMMANDS is set to true
FADE_DURATION = 7
# How fast menu items slide
# ONLY VALID IN PLACEMENTS 1 AND 3 WITH STYLE 2 ACTIVATED
# For this, I recommend 3 - 15.
SLIDE_SPEED = 3
# Allow sliding, or keep it static?
ALLOW_SLIDE = false
# The transparency of the menu items
HOVER = 225
INACTIVE = 50
# These values push items down or right on the screen so you can get them
# in just the right position for your game.
TITLE_X = 0
TITLE_Y = 0
# New Game Offset, Continue Offset, Exit Offset
COMMAND_X = [0,0,0]
COMMAND_Y = [0,0,0]
# If FADE_OUT_COMMANDS is false, then how visible will the commands be?
COMMAND_OPA = 200
end
end
#==============================================================================
# Do not edit below this line if you don't know what you're doing!
#==============================================================================
class Scene_Title < Scene_Base
include Rekx::CustomTitle
def start
super
load_database
create_game_objects
check_continue
create_command_window
play_title_music
$up = true
@nBgImage = "title_bg"
@nfall1 = "fall1"
@nfall2 = "fall2"
if @continue_enabled
@command_window.index = 1
@nnew_game = NEW_GAME_GRAPHICS[1]
@ncontinue = CONTINUE_GRAPHICS[0]
@nexit = SHUTDOWN_GRAPHICS[1]
else
@nnew_game = NEW_GAME_GRAPHICS[0]
@ncontinue = CONTINUE_GRAPHICS[2]
@nexit = SHUTDOWN_GRAPHICS[1]
end
@ntitle = "title_image"
@ncredits = "credits"
load_images
end
def update
super
current_menu_index
update_command_window_input
falling_animation if FALLING
@title.update
end
def terminate
super
@command_window.dispose
@bg.dispose
@new_game.dispose
@continue.dispose
@exit.dispose
@title.dispose
@credits.dispose
@fall1.dispose if FALLING
@fall2.dispose if FALLING
end
alias hsnake_dtsst_ccw create_command_window unless $@
def create_command_window
hsnake_dtsst_ccw
@command_window.opacity = 0
@command_window.contents_opacity = 0
end
def open_command_window
@command_window.open
begin
@command_window.update
Graphics.update
end until @command_window.openness == 255
end
def close_command_window
@command_window.close
begin
@command_window.update
Graphics.update
end until @command_window.openness == 0
end
def update_command_window_input
@command_window.update
case @command_window.index
when 0
refresh_command_sprites(0)
command_new_game if Input.trigger? (Input::C)
@new_game.z = 1
@continue.z = 0
@exit.z = 0
when 1
refresh_command_sprites(1)
command_continue if Input.trigger? (Input::C)
@new_game.z = 0
@continue.z = 1
@exit.z = 0
when 2
refresh_command_sprites(2)
command_shutdown if Input.trigger? (Input::C)
@new_game.z = 0
@continue.z = 0
@exit.z = 1
end
end
def refresh_command_sprites(index)
case index
when 0
@new_game.bitmap = Cache.picture(NEW_GAME_GRAPHICS[0])
if @continue_enabled
@continue.bitmap = Cache.picture(CONTINUE_GRAPHICS[1])
else
@continue.bitmap = Cache.picture(CONTINUE_GRAPHICS[2])
end
@exit.bitmap = Cache.picture(SHUTDOWN_GRAPHICS[1])
when 1
if @continue_enabled
@continue.bitmap = Cache.picture(CONTINUE_GRAPHICS[0])
else
@continue.bitmap = Cache.picture(CONTINUE_GRAPHICS[2])
end
@new_game.bitmap = Cache.picture(NEW_GAME_GRAPHICS[1])
@exit.bitmap = Cache.picture(SHUTDOWN_GRAPHICS[1])
when 2
@new_game.bitmap = Cache.picture(NEW_GAME_GRAPHICS[1])
if @continue_enabled
@continue.bitmap = Cache.picture(CONTINUE_GRAPHICS[1])
else
@continue.bitmap = Cache.picture(CONTINUE_GRAPHICS[2])
end
@exit.bitmap = Cache.picture(SHUTDOWN_GRAPHICS[0])
end
end
def falling_animation
@fall2.ox += 2
@fall2.oy -= 1
@fall1.ox -= 1
@fall1.oy -= 1
end
def current_menu_index
if PLACEMENT == 1
$MOVE = (Graphics.width / 3 - 165) - 10
$NOMOVE = (Graphics.width / 3 - 165) + 30
elsif PLACEMENT == 3
$MOVE = (Graphics.width - @new_game.width - 15) + 10
$NOMOVE = (Graphics.width - @new_game.width - 15) - 30
else
$NOMOVE = (Graphics.width / 3) - (@new_game.width / 3)
$MOVE = (Graphics.width / 3) - (@new_game.width / 3)
end
a = HOVER
b = INACTIVE
case @command_window.index
when 0
menu_opacity(a,b, if FADE_OUT_COMMANDS
if STYLE == 2
menu_slide($NOMOVE,$MOVE,$MOVE) if ALLOW_SLIDE
end
when 1
if FADE_OUT_COMMANDS
if @continue_enabled
menu_opacity(b,a,
else
menu_opacity(b,20,
end
end
if STYLE == 2
menu_slide($MOVE,$NOMOVE,$MOVE) if ALLOW_SLIDE
end
when 2
menu_opacity(b,b,a) if FADE_OUT_COMMANDS
if STYLE == 2
menu_slide($MOVE,$MOVE,$NOMOVE) if ALLOW_SLIDE
end
end
end
def menu_opacity(a,b,c)
FADE_DURATION.times {
@new_game.opacity -= 1 if @new_game.opacity > a
@new_game.opacity += 1 if @new_game.opacity < a
@new_game.update
break if @new_game.opacity == a
}
FADE_DURATION.times {
@continue.opacity -= 1 if @continue.opacity > b
@continue.opacity += 1 if @continue.opacity < b
@continue.update
break if @continue.opacity == b
}
FADE_DURATION.times {
@exit.opacity -= 1 if @exit.opacity > c
@exit.opacity += 1 if @exit.opacity < c
@exit.update
break if @exit.opacity == c
}
@title.update
end
def menu_slide(a, b, c)
SLIDE_SPEED.times {
@new_game.x -= 1 if @new_game.x > a
@new_game.x += 1 if @new_game.x < a
@new_game.update
break if @new_game.x == a
}
SLIDE_SPEED.times {
@continue.x -= 1 if @continue.x > b
@continue.x += 1 if @continue.x < b
@continue.update
break if @continue.x == b
}
SLIDE_SPEED.times {
@exit.x -= 1 if @exit.x > c
@exit.x += 1 if @exit.x < c
@exit.update
break if @exit.x == c
}
end
def load_images
commands_opacity = FADE_OUT_COMMANDS ? 100 : COMMAND_OPA
#Background
@bg = Sprite.new
@bg.bitmap = Cache.picture(@nBgImage)
# New Game Graphic
@new_game = Sprite.new
@new_game.bitmap = Cache.picture(@nnew_game)
if STYLE == 2
@new_game.y = 288 + COMMAND_Y[0]
if PLACEMENT == 1
@new_game.x = ((Graphics.width / 3) - ((@new_game.width / 3) * 2)) + COMMAND_X[0]
elsif PLACEMENT == 2
@new_game.x = (Graphics.width / 3) - (@new_game.width / 3) + COMMAND_X[0]
else
@new_game.x = (((Graphics.width / 3) * 2) - (@new_game.width / 3)) + COMMAND_X[0]
end
elsif STYLE == 1
@new_game.x = Graphics.width / 3 - 165
@new_game.y = 338 + COMMAND_Y[0]
end
# Continue Graphic
@continue = Sprite.new
@continue.bitmap = Cache.picture(@ncontinue)
if STYLE == 2
@continue.y = 318 + COMMAND_Y[1]
if PLACEMENT == 1
@continue.x = ((Graphics.width / 3) - ((@continue.width / 3) * 2)) + COMMAND_X[1]
elsif PLACEMENT == 2
@continue.x = (Graphics.width / 3) - (@continue.width / 3) + COMMAND_X[1]
else
@continue.x = (((Graphics.width / 3) * 2) - (@continue.width / 3)) + COMMAND_X[1]
end
elsif STYLE == 1
@continue.x = Graphics.width / 3 + 19
@continue.y = 338
end
@continue.opacity = commands_opacity
# Exit Graphic
@exit = Sprite.new
@exit.bitmap = Cache.picture(@nexit)
if STYLE == 2
#@exit.x = -10
@exit.y = 348 + COMMAND_Y[2]
if PLACEMENT == 1
@exit.x = ((Graphics.width / 3) - ((@exit.width / 3) * 2)) + COMMAND_X[2]
elsif PLACEMENT == 2
@exit.x = (Graphics.width / 3) - (@exit.width / 3) + COMMAND_X[2]
else
@exit.x = (((Graphics.width / 3) * 2) - (@exit.width / 3)) + COMMAND_X[2]
end
elsif STYLE == 1
@exit.x = Graphics.width - @exit.width - 15
@exit.y = 338 + COMMAND_Y[2]
end
@exit.opacity = commands_opacity
# Logo graphic
@title = Sprite.new
@title.bitmap = Cache.picture(@ntitle)
@title.x = (Graphics.width / 2 - @title.width / 2) + TITLE_X
@title.y = 3 + TITLE_Y
@title.z = 10
@title.opacity = 200
if WAVY
@title.wave_amp = WAVE_AMP
@title.wave_length = WAVE_LENGTH
@title.wave_speed = WAVE_SPEED
end
#Credit Image
@credits = Sprite.new
@credits.bitmap = Cache.picture(@ncredits)
@credits.x = Graphics.width / 2 - (@credits.width / 2)
@credits.y = 377
if FALLING
# Leaves
@fall1 = Plane.new
@fall1.bitmap = Cache.picture(@nfall1)
@fall1.opacity = 130
@fall2 = Plane.new
@fall2.bitmap = Cache.picture(@nfall2)
@fall2.opacity = 100
@fall1.z = 9
@fall2.z = 11
end
end
endNone, ask a question!
Compatibility
Incompatible with RAFAEL_SOL_MAKER's Smooth Window Opening
Credit and Thanks
- Rekx/TheRexion
- Johnny Mercy
- HungrySnake