Dédolé, je suis passé a coté de ce topic ^^.
Alors, Pour commencer, il faut que tu utilises le script qui te permet de sauter l'écran titre et t'amène directement sur une map ou tu coderas ton écran titre en event.
(Remplace le contenu du script "Scene_Title" par celui-ci :
- Code:
-
#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
# タイトル画面の処理を行うクラスです。
#==============================================================================
class Scene_Title
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
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
command_new_game
end
#--------------------------------------------------------------------------
# ● コマンド : ニューゲーム
#--------------------------------------------------------------------------
def command_new_game
Graphics.frame_count = 0
# 各種ゲームオブジェクトを作成
$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
# 初期パーティをセットアップ
$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
# マップに設定されている BGM と BGS の自動切り替えを実行
$game_map.autoplay
# マップを更新 (並列イベント実行)
$game_map.update
# マップ画面に切り替え
$scene = Scene_Map.new
end
#--------------------------------------------------------------------------
# ● 戦闘テスト
#--------------------------------------------------------------------------
def battle_test
# データベース (戦闘テスト用) をロード
$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")
# プレイ時間計測用のフレームカウントをリセット
Graphics.frame_count = 0
# 各種ゲームオブジェクトを作成
$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
# 戦闘テスト用のパーティをセットアップ
$game_party.setup_battle_test_members
# トループ ID、逃走可能フラグ、バトルバックを設定
$game_temp.battle_troop_id = $data_system.test_troop_id
$game_temp.battle_can_escape = true
$game_map.battleback_name = $data_system.battleback_name
# バトル開始 SE を演奏
$game_system.se_play($data_system.battle_start_se)
# バトル BGM を演奏
$game_system.bgm_play($game_system.battle_bgm)
# バトル画面に切り替え
$scene = Scene_Battle.new
end
end
Ensuite, Pour coder l'ecran titre en event tu dois :
1)Afficher ton image de fond (que tu peux faire en map, ou en utilisant une image). Puis afficher en image les différents choix (nouveau jeu ect...) en image aussi, parceque c'est plus joli
Enfin affiche ton curseur en evenement.
Note : A la place d'un curseur, tu peux mettre a l'image une opacité a 150 de type "eclarcie".
2)Il faut ensuite coder le curseur. Cela se fait en une boucle. Juste avant la boucle, initialise une variable qui représentera la position du curseur a 1 (On l'appellera curseur).
ensuite dans la boucle, on va coder les déplacements du curseur.
On va dire que tu fait un ecran titre un peu comme celui de base (option les unes au dessus des autres).
Donc si la touche "haut" est préssée, on retire 1 a la position du curseur et si la touche "bas" est préssée, on ajoute 1 a cette valeur.
/!\ Ne pas oublié de faire des "bornes" pour la valeur du curseur. Je veux dire par là que si le curseur est en position 1 et que le joueur presse haut, la position 0 n'existant pas, il faut soit 1) rendre la valeur de cette variable égal a 1, soit rendre la valeur du curseur a la valeur de ta dernière option. Pareil pour l'autre borne.
Il faut aussi que tu mettes dans cette boucle des conidtions pour bien afficher ton curseur a la bonne place selon la valeur de la variable.
(Note : tu peux automatiser cette tache si l'espacement entre tes options est identique.
A ce moment là, tu peux faire : Variable "position_curseur" = Espace entre le haut de la fenetre et la première option + (curseur-1) * espace entre les options)
Pour le codage de la touche entrée, sort de la boucle.
Après cette boucle, efface les images et execute les différentes options :
1) Nouveau jeu : Téléporte ton héros sur la première page du jeu
2) Charger : Appelle un script : $scene = Scene_Load.new
3) Quitter : Appelle un script : $scene = nil
4)Pour toute autre option (Bonus, Gallerie et tout ce que tu peux imaginé ^^), téléporte ton héros sur la map ou est coder le tout!!
Voila, j'espère que j'ai été clair et que tu arriveras a tes fins. N'hesite pas poser tes questions sur les choses pas claires!!!
Petit + :
-N'oublie pas de mettre les sons selon les touches appuyées.
-Pour griser la fonction "charger" si il n'y a pas de sauvegarde a charger, insère ce petit code au début de l'evenement:
insérer un script :
- Code:
-
for i in 1..4
if FileTest.exist?("Save#{i}.rxdata")
$game_switches[1] = true
end
end
le "for i in 0..3" passe en revue les 4 slot de sauvegarde. Donc si tu as un script qui te permet d'avoir plus de sauvegarde, remplace le '3' par le nombre de sauvegarde possible.
Si vous avez une version francaise de rpgmaker, il faut marquer Sauvegarde et non Save (sauf si vous avez la version 1.01 de boddomchild et Rabby)
Ensuite le "$game_switches[1] = true" active l'interrupteur 1 du jeu. Donc remplace le 1 par l'ID de l'interrupteur que tu veux activé.
Ensuite avant d'afficher met en condition l'activation de l'interrupteur
si il est activé affiche l'image "charger" normale, sinon affiche l'image "charger" grisée.
(Je pense qu'en modifiant le ton de l'image, tu peux arriver a tes fins).
Et de même, si la touche entrée est préssée et que le curseur se trouve sur l'option charger, et qu'il n'y a aps de sauvegarde, joue un bruit qui indique une erreur et ne sort pas de la boucle ^^. je te laisse essayé de coder ça tou seul ^^.