| Aider un nouveau scripteur [Résolu] | |
|
Aller à la page : 1, 2  |
| Auteur | Message |
|---|
Emixam2 Membre très actif


Age : 19 Inscrit le : 27 Aoû 2007 Messages : 265 Localisation : Trois-Rivière (Québec, Canada)
| Sujet: Aider un nouveau scripteur [Résolu] Lun 5 Mai - 4:39 | |
| Bonjour
Je suis en train de commencer à créer mes propre script et j'aurais besoin d'aide pour un problème que je trouve niaiseux.
Je fait un menu de "nos records" par rapport à un jeu de course qui est rappelable par le menu de base (échap). de se menu, nous pouvons choisir de voir les records qui sont classé par course (comme suit):
Course 1 Course 2 Course 3 etc...
Les fenêtre des descriptions des records ne possède aucune interaction, il ne s'agit que de texte, de variable affiché et d'image.
Jusque là, tout vas bien. par contre, lorsque j'appuie sur échap, je reviens à ma liste de choix de course (comme prévu) mais la fenêtre des records de la fenêtre précédemment sélectionné ne s'efface pas. Même si je quitte le menu, elle ne s'efface pas se qui est un peu embêtant.
Je suis sur que ces facile a résoudre mais je n'y arrive pas
Merci de bien vouloir m'aider.
P.S.: J'espère que je suis clair. _________________ La tristesse est une chose qui rend triste. Pleurer est une chose qui rend humide.
Mon forum est tranquille. J'ai besoin d'aide pour l'aider à le réveillé. Venez vous y inscrire et y participer SVP. http://forumrpgmakerxp.xooit.fr
Dernière édition par Emixam2 le Jeu 8 Mai - 13:14, édité 1 fois |
|
 | |
Akha Membre très actif


Inscrit le : 31 Jan 2008 Messages : 194
| Sujet: Re: Aider un nouveau scripteur [Résolu] Lun 5 Mai - 18:35 | |
| | Tu veux effacer ton image de fond c'est ça ? |
|
 | |
Emixam2 Membre très actif


Age : 19 Inscrit le : 27 Aoû 2007 Messages : 265 Localisation : Trois-Rivière (Québec, Canada)
| Sujet: Re: Aider un nouveau scripteur [Résolu] Lun 5 Mai - 21:13 | |
| En fait, je veux effacer toute la Window (C'est-à-dire la fenêtre, les variable afficher, l'image afficher, le texte afficher) juste lorsque l'on appui sur échap _________________ La tristesse est une chose qui rend triste. Pleurer est une chose qui rend humide.
Mon forum est tranquille. J'ai besoin d'aide pour l'aider à le réveillé. Venez vous y inscrire et y participer SVP. http://forumrpgmakerxp.xooit.fr |
|
 | |
Akha Membre très actif


Inscrit le : 31 Jan 2008 Messages : 194
| Sujet: Re: Aider un nouveau scripteur [Résolu] Mar 6 Mai - 12:08 | |
| | Oui en fait tu veux tout effacer et revenir sur la map après avoir fait échap non ? ^^ |
|
 | |
Emixam2 Membre très actif


Age : 19 Inscrit le : 27 Aoû 2007 Messages : 265 Localisation : Trois-Rivière (Québec, Canada)
| Sujet: Re: Aider un nouveau scripteur [Résolu] Mar 6 Mai - 12:42 | |
| Pas sur la map mais au menu du jeu (item, status, sauvegarder,...) _________________ La tristesse est une chose qui rend triste. Pleurer est une chose qui rend humide.
Mon forum est tranquille. J'ai besoin d'aide pour l'aider à le réveillé. Venez vous y inscrire et y participer SVP. http://forumrpgmakerxp.xooit.fr |
|
 | |
Ken le survivant Membre méga actif


Age : 17 Inscrit le : 14 Nov 2007 Messages : 507 Localisation : sur un serveur entrain de joué a Counter-Strike
| Sujet: Re: Aider un nouveau scripteur [Résolu] Mar 6 Mai - 13:29 | |
| Pour effacé un window:
| Code: | le_nom_de_la_fenetre.dispose |
tu doit faire ton menu de course en scene voila la structure de base(de tonyryu)
| Code: | #============================================================================== # ■ Scene_Squel #------------------------------------------------------------------------------ # Squelette de script scene #==============================================================================
class Scene_Squel #-------------------------------------------------------------------------- # ● initialize # Permet d'initialiser des variables de classes à la construction de l'objet #-------------------------------------------------------------------------- def initialize # [ A COMPLETER ] end #-------------------------------------------------------------------------- # ● main #-------------------------------------------------------------------------- def main # Création des objets Window [ A COMPLETER ]
# Transition graphique Graphics.transition # Boucle loop do # MAJ graphique Graphics.update # MAJ clavier Input.update # Appel de la méthode update update # Si la scene est diférente de celle-ci if $scene != self # Sortir de la scene break end end # Figer les graphisme Graphics.freeze # Détruire les fenêtres créés [ A COMPLETER ]
end #-------------------------------------------------------------------------- # ● update # Permet de gérer les interventions utilisateurs #-------------------------------------------------------------------------- def update
# Appeler les méthodes update des fenêtres créés [ A COMPLETER ]
# Si touche annulation appuyé if Input.trigger?(Input::B) # Jouer le son d'annulation $game_system.se_play($data_system.cancel_se) # Action a faire en cas d'annulation [ A COMPLETER ] #ici tu met: la_scene.dispose return end
# Si touche validation appuyé if Input.trigger?(Input::C) # Jouer le son de validation $game_system.se_play($data_system.decision_se)
# Action a faire en cas de validation [ A COMPLETER ] return end end end |
_________________
|
|
 | |
Emixam2 Membre très actif


Age : 19 Inscrit le : 27 Aoû 2007 Messages : 265 Localisation : Trois-Rivière (Québec, Canada)
| Sujet: Re: Aider un nouveau scripteur [Résolu] Mar 6 Mai - 16:28 | |
| Sa ne marche pas, sa me dit que j'ai un problème dans le script Window_Course1 à la ligne 41. À la ligne en question:
36= self.contents.font.color = normal_color 37= bitmap = RPG::Cache.picture("course1") 38= src_rect = Rect.new(0, 0, bitmap.width, bitmap.height) 39= self.contents.blt(15, y+260, bitmap, src_rect) 40= end 41= Window_Course1.dispose 42= end
-------fin du script------
J'ai essayer de mettre ou d'enlever des "end" mais sa ne marche pas. Me manque-t-il un "def quelque chose"? _________________ La tristesse est une chose qui rend triste. Pleurer est une chose qui rend humide.
Mon forum est tranquille. J'ai besoin d'aide pour l'aider à le réveillé. Venez vous y inscrire et y participer SVP. http://forumrpgmakerxp.xooit.fr |
|
 | |
tonyryu Membre actif


Inscrit le : 24 Jan 2008 Messages : 83
| Sujet: Re: Aider un nouveau scripteur [Résolu] Mar 6 Mai - 16:39 | |
| ça ne fonctionne pas, car tu n'as pas regardé où il fallait ajouter la destruction de la fenêtre, ni pris le temps d'aller lire le tutoriel accessible via le lien fournit par Ken
Window_Course1.dispose doit se mettre dans le script Scene qui organise tes fenêtres, à la fin de la méthode main. |
|
 | |
Emixam2 Membre très actif


Age : 19 Inscrit le : 27 Aoû 2007 Messages : 265 Localisation : Trois-Rivière (Québec, Canada)
| Sujet: Re: Aider un nouveau scripteur [Résolu] Mer 7 Mai - 22:26 | |
| J'ai lu entièrement le tuto de Tonyru mais je n'arrive toujours pas à régler mon problème.
Voici mon script costum (ne pas prendre car pas terminer) du menu général de mes course (Scene_Menu_Course)
| Spoiler: | | | | Code: | #------------------------------------------------------------------------------ #Script entièrement fait par emixam2 #------------------------------------------------------------------------------
#=========================================== #Ce script permet de créer la liste des courses à sélectionner pour voir #ces records #===========================================
#============================================================================== # ■ Scene_Menu_Course #------------------------------------------------------------------------------ # メニュー画面の処理を行うクラスです。 #==============================================================================
class Scene_Menu_Course #-------------------------------------------------------------------------- # ● オブジェクト初期化 # menu_index : コマンドのカーソル初期位置 #-------------------------------------------------------------------------- def initialize(menu_index = 0) @menu_index = menu_index end #-------------------------------------------------------------------------- # ● メイン処理 #-------------------------------------------------------------------------- def main # コマンドウィンドウを作成 s1 = " Course 1" s2 = " Course 2" s3 = " Course 3" s4 = " Course 4" s5 = " Course 5" s6 = " Course 6" @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6]) @command_window.index = @menu_index # パーティ人数が 0 人の場合 if $game_party.actors.size == 0 # アイテム、スキル、装備、ステータスを無効化 @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end # セーブ禁止の場合 if $game_system.save_disabled # セーブを無効にする @command_window.disable_item(4) end # トランジション実行 Graphics.transition # メインループ loop do # ゲーム画面を更新 Graphics.update # 入力情報を更新 Input.update # フレーム更新 update # 画面が切り替わったらループを中断 if $scene != self break end end # トランジション準備 Graphics.freeze # ウィンドウを解放 @course1_window.dispose end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update # ウィンドウを更新 @command_window.update # コマンドウィンドウがアクティブの場合: update_command を呼ぶ if @command_window.active update_command return end # ステータスウィンドウがアクティブの場合: update_status を呼ぶ if @status_window.active update_status return end end #-------------------------------------------------------------------------- # ● フレーム更新 (コマンドウィンドウがアクティブの場合) #-------------------------------------------------------------------------- def update_command # B ボタンが押された場合 if Input.trigger?(Input::B) # キャンセル SE を演奏 $game_system.se_play($data_system.cancel_se) # マップ画面に切り替え $scene = Scene_Menu.new(6) return end # C ボタンが押された場合 if Input.trigger?(Input::C) # パーティ人数が 0 人で、セーブ、ゲーム終了以外のコマンドの場合 if $game_party.actors.size == 0 and @command_window.index < 4 # ブザー SE を演奏 $game_system.se_play($data_system.buzzer_se) return end # コマンドウィンドウのカーソル位置で分岐 case @command_window.index when 0 # アイテム # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # アイテム画面に切り替え $Window = Window_Course1.new when 1 # スキル # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # ステータスウィンドウをアクティブにする $Window = Window_Course2.new when 2 # 装備 # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # ステータスウィンドウをアクティブにする $Window = Window_Course3.new when 3 # ステータス # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # ステータスウィンドウをアクティブにする $Window = Window_Course4.new when 4 # セーブ # セーブ禁止の場合 $game_system.se_play($data_system.decision_se) # セーブ画面に切り替え $Window = Window_Course5.new when 5 # ゲーム終了 # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # ゲーム終了画面に切り替え $Window = Window_Course6.new end return end end #-------------------------------------------------------------------------- # ● フレーム更新 (ステータスウィンドウがアクティブの場合) #-------------------------------------------------------------------------- def update_status # B ボタンが押された場合 if Input.trigger?(Input::B) # キャンセル SE を演奏 $game_system.se_play($data_system.cancel_se) # コマンドウィンドウをアクティブにする @command_window.active = true @status_window.active = false @status_window.index = -1 return end # C ボタンが押された場合 if Input.trigger?(Input::C) # コマンドウィンドウのカーソル位置で分岐 case @command_window.index when 1 # スキル # このアクターの行動制限が 2 以上の場合 if $game_party.actors[@status_window.index].restriction >= 2 # ブザー SE を演奏 $game_system.se_play($data_system.buzzer_se) return end # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # スキル画面に切り替え $scene = Scene_Skill.new(@status_window.index) when 2 # 装備 # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # 装備画面に切り替え $scene = Scene_Equip.new(@status_window.index) when 3 # ステータス # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # ステータス画面に切り替え $scene = Scene_Status.new(@status_window.index) end return end end end
|
|
Je voudrais que, lorsque je quitte la fenêtre Window_Course1 qui est appeler lorsque que je sélectionne Course 1 dans le script ci-haut, la fenêtre Window_Course1 s'efface.
Merci _________________ La tristesse est une chose qui rend triste. Pleurer est une chose qui rend humide.
Mon forum est tranquille. J'ai besoin d'aide pour l'aider à le réveillé. Venez vous y inscrire et y participer SVP. http://forumrpgmakerxp.xooit.fr |
|
 | |
tonyryu Membre actif


Inscrit le : 24 Jan 2008 Messages : 83
| Sujet: Re: Aider un nouveau scripteur [Résolu] Jeu 8 Mai - 0:02 | |
| Oulaaaaaa, oui oki, je comprend le problème.
Bon en premier lieu, tu créés toutes tes fenêtres de courses au début du script Main, comme indiqué dans le tutorial et tu les disposes toutes à la fin. Ensuite dans les initializes de tes fenêtres courses, tu mets : self.visible = false
si tu veux faire apparaitre une fenêtre dans ton script scene, tu fais : @window_course1.visible = true false si tu veux la faire disparaitre.
Et n'oublie pas de détruire l'objet @command_window.
J'ai refait rapidement ce que tu veux :
| Code: | #------------------------------------------------------------------------------ #Script entièrement fait par emixam2 #------------------------------------------------------------------------------
#============================================================================== # ■ Scene_Menu_Course #------------------------------------------------------------------------------ # Ce script permet de créer la liste des courses à sélectionner pour voir # ces records #==============================================================================
class Scene_Menu_Course #-------------------------------------------------------------------------- # ● Scene_Menu_Course # menu_index : position initiale du curseur #-------------------------------------------------------------------------- def initialize(menu_index = 0) @menu_index = menu_index end #-------------------------------------------------------------------------- # ● main #-------------------------------------------------------------------------- def main # Création des fenêtres # liste des options dans le menu s1 = " Course 1" s2 = " Course 2" s3 = " Course 3" s4 = " Course 4" s5 = " Course 5" s6 = " Course 6" @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6]) @command_window.index = @menu_index # Création des fenêtre de course @window_course1 = Window_Course1.new @window_course2 = Window_Course2.new @window_course3 = Window_Course3.new @window_course4 = Window_Course4.new @window_course5 = Window_Course5.new @window_course6 = Window_Course6.new
# Lancer la transition graphique Graphics.transition # Boucler loop do # Mise à jour des graphisme Graphics.update # Mise à jour des entrés clavier Input.update # Appel de la procédure update update # Si la scene n'est plus celle-ci if $scene != self break end end # Figer les graphisme Graphics.freeze # Supprimer les fenêtres @command_window.dispose @window_course1.dispose @window_course2.dispose @window_course3.dispose @window_course4.dispose @window_course5.dispose @window_course6.dispose end #-------------------------------------------------------------------------- # ● update #-------------------------------------------------------------------------- def update # update menu @command_window.update # update fenêtre course si visible @window_course1.update if @window_course1.visible @window_course2.update if @window_course2.visible @window_course3.update if @window_course3.visible @window_course4.update if @window_course4.visible @window_course5.update if @window_course5.visible @window_course6.update if @window_course6.visible update_command
end #-------------------------------------------------------------------------- # ● update_command #-------------------------------------------------------------------------- def update_command # Si Le bouton d'annulation est appuyée if Input.trigger?(Input::B) # Jouer le son d'annulation $game_system.se_play($data_system.cancel_se) # Charger le menu principale en se positionnant sur l'option 6 $scene = Scene_Menu.new(6) return end # Si Le bouton de validation est appuyée if Input.trigger?(Input::C) # Jouer le son de validation $game_system.se_play($data_system.decision_se) # Rendre invisible toutes les fenêtre de courses @window_course1.visible = false @window_course2.visible = false @window_course3.visible = false @window_course4.visible = false @window_course5.visible = false @window_course6.visible = false # Selon l'option sélectionné case @command_window.index when 0 # course 1 # rendre visible la fenêtre de course 1 @window_course1.visible = true when 1 # course 2 # rendre visible la fenêtre de course 2 @window_course2.visible = true when 2 # course 3 # rendre visible la fenêtre de course 3 @window_course3.visible = true when 3 # course 4 # rendre visible la fenêtre de course 4 @window_course4.visible = true when 4 # course 5 # rendre visible la fenêtre de course 5 @window_course5.visible = true when 5 # course 6 # rendre visible la fenêtre de course 6 @window_course6.visible = true end return end end end |
J'ai pas eu le temps de tester, mais ça doit être bon. |
|
 | |
Emixam2 Membre très actif


Age : 19 Inscrit le : 27 Aoû 2007 Messages : 265 Localisation : Trois-Rivière (Québec, Canada)
| Sujet: Re: Aider un nouveau scripteur [Résolu] Jeu 8 Mai - 1:33 | |
| Salut
Désolé mais il y a un petit problème avec le script que tu ma fait. Toute les Window_CourseX apparaissent dès que j'ouvre la liste des choix de course et, de plus, tous une par dessus l'autre. Si je choisi une course, les autres disparaissent (un point positif). et si je fait échap, tout s'efface et on revient au menu principale (encore un bon point).
Donc, tout se qui ne marche pas ses que toute les fenêtre apparaissent avant que je les sélectionne.
Merci si tu m'aide encore Tonyru. _________________ La tristesse est une chose qui rend triste. Pleurer est une chose qui rend humide.
Mon forum est tranquille. J'ai besoin d'aide pour l'aider à le réveillé. Venez vous y inscrire et y participer SVP. http://forumrpgmakerxp.xooit.fr |
|
 | |
tonyryu Membre actif


Inscrit le : 24 Jan 2008 Messages : 83
| Sujet: Re: Aider un nouveau scripteur [Résolu] Jeu 8 Mai - 9:26 | |
| Voila, c'est le genre de truc qui arrivent quant on ne prend pas le temps de lire tout ce qui est marqué dans les posts.
| Citation: | Ensuite dans les initializes de tes fenêtres courses, tu mets : self.visible = false |
|
|
 | |
Emixam2 Membre très actif


Age : 19 Inscrit le : 27 Aoû 2007 Messages : 265 Localisation : Trois-Rivière (Québec, Canada)
| Sujet: Re: Aider un nouveau scripteur [Résolu] Jeu 8 Mai - 13:14 | |
| Merci.
Mon problème est résolu et mon script est pratiquement fini. _________________ La tristesse est une chose qui rend triste. Pleurer est une chose qui rend humide.
Mon forum est tranquille. J'ai besoin d'aide pour l'aider à le réveillé. Venez vous y inscrire et y participer SVP. http://forumrpgmakerxp.xooit.fr |
|
 | |
Ken le survivant Membre méga actif


Age : 17 Inscrit le : 14 Nov 2007 Messages : 507 Localisation : sur un serveur entrain de joué a Counter-Strike
| Sujet: Re: Aider un nouveau scripteur [Résolu] Jeu 8 Mai - 13:19 | |
| N'oublie pas de partager ton script. _________________
|
|
 | |
Emixam2 Membre très actif


Age : 19 Inscrit le : 27 Aoû 2007 Messages : 265 Localisation : Trois-Rivière (Québec, Canada)
| Sujet: Re: Aider un nouveau scripteur [Résolu] Jeu 8 Mai - 14:08 | |
| Dès que je l'aurai fini, vous en aurai connaissance. il me reste à définir des variables pour savoir lesquelles je doit afficher et lesquelles ne servent qu'a compter. De toute façon, j'ai déjà promis se script à Spikey pour son jeu de voiture. D'après moi, mon script sera disponible la semaine prochaine (dans les environs de mardi matin (heure de france), donc pour moi lundi soir) _________________ La tristesse est une chose qui rend triste. Pleurer est une chose qui rend humide.
Mon forum est tranquille. J'ai besoin d'aide pour l'aider à le réveillé. Venez vous y inscrire et y participer SVP. http://forumrpgmakerxp.xooit.fr |
|
 | |
| Aider un nouveau scripteur [Résolu] | |
|