Petit script à coller en dessous de Scene_Title :
- Code: Tout sélectionner
#===================================================
#Ecran titre
#Créé par Phacog le 09/12/07
#===================================================
class Scene_Title
#===================================================
#Les différents éléments du menu tournent autour d'une ellipse, on peut changer les
#paramètres grace au paramètre ci-dessous :
#ZOOM_MIN -> zoom des items lorsqu'il atteint le point le plus éloigné
#CENTRE_X -> abscisse du centre de l'ellipse
#CENTRE_Y -> ordonnée du centre de l'ellipse
#RAYON_X -> rayon de l'ellipse sur l'axe des abscisses
#RAYON_Y -> rayon de l'ellipse sur l'axe des ordonnées
#====================================================
ZOOM_MIN = 0.7
CENTRE_X = 320
CENTRE_Y = 240
RAYON_X = 200
RAYON_Y = 150
def main
if $BTEST
battle_test
return
end
$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")
$game_system = Game_System.new
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title($data_system.title_name)
@command_sprites = [Sprite.new, Sprite.new, Sprite.new]
@angle = 0
@vel_angle = 0
@continue_enabled = false
for i in 0..3
if FileTest.exist?("Save#{i+1}.rxdata")
@continue_enabled = true
@angle = 240
end
end
for i in 0..2
@command_sprites[i].bitmap = RPG::Cache.title("Item#{i+1}select")
@command_sprites[i].ox = @command_sprites[i].bitmap.width / 2
@command_sprites[i].oy = @command_sprites[i].bitmap.height / 2
@command_sprites[i].x, @command_sprites[i].y = ellipse(@angle + i * 120)
@command_sprites[i].z = @command_sprites[i].y
zoom = ((1 - ZOOM_MIN ) / (2 * RAYON_Y )) * (@command_sprites[i].y - CENTRE_Y - RAYON_Y) + 1
@command_sprites[i].zoom_x = zoom
@command_sprites[i].zoom_y = zoom
end
$game_system.bgm_play($data_system.title_bgm)
Audio.me_stop
Audio.bgs_stop
Graphics.transition
loop do
Graphics.update
Input.update
update
break if $scene != self
end
Graphics.freeze
@sprite.bitmap.dispose
@sprite.dispose
for i in 0..2
@command_sprites[i].bitmap.dispose
@command_sprites[i].dispose
end
end
def update
@vel_angle = -5 if Input.press?(Input::LEFT)
@vel_angle = 5 if Input.press?(Input::RIGHT)
@angle += @vel_angle
@angle %= 360
if @angle % 120 == 0
@vel_angle = 0
end
for i in 0..2
@command_sprites[i].x, @command_sprites[i].y = ellipse(@angle + i * 120)
zoom = ((1 - ZOOM_MIN ) / (2 * RAYON_Y ))* (@command_sprites[i].y - CENTRE_Y - RAYON_Y) + 1
@command_sprites[i].zoom_x = zoom
@command_sprites[i].zoom_y = zoom
@command_sprites[i].z = @command_sprites[i].y
@command_sprites[i].update
end
if Input.trigger?(Input::C) and @angle % 120 == 0
case @angle / 120
when 0
command_new_game
when 1
command_shutdown
when 2
command_continue
end
end
end
def ellipse(angle)
angle *= Math::PI / 180
x = CENTRE_X - RAYON_X * Math.sin(angle)
y = CENTRE_Y + RAYON_Y * Math.cos(angle)
return x, y
end
end
Les images toujours à mettre dans le dossier Title :
- Item1 pour Nouvelle partie
- Item2 pour Continuer
- Item3 pour Quitter
Voilà, si tu veux des modifications n'hésite pas à demander, j'éssaie d'assurer un minimum le service après-partage de mes scripts
