| Création d'une petite fenêtre de menu. | |
|
Auteur | Message |
---|
Vagabond Lv.5
Age : 28 Inscrit le : 20/04/2009 Messages : 88
| Sujet: Création d''une petite fenêtre de menu. Dim 17 Mai 2009 - 11:26 | |
| Salut ! J'aurais besoin d'un petit Script. Juste une légere création. ¤ Type : Création de Fenêtre. Pour VX. ¤ Descriptif : Il me faudrat un tout nouveau Scene_Menu. En fait, vous pouvez carrément supprimer le menu car je n'en ai pas besoin. Je voudrais que quand on appuie sur Echap, une petite fenetre s'ouvre avec écrit "Pause", et dessous : "Continuer",pour retourner sur la map, et "Quitter", pour aller a l'Ecran Titre. ¤ Images/schémas joint(-e)s : _______________ | Pause_________| |______________| | Continuer______| | Quitter________| |______________| Bien sur ce n'est q'un shéma grossier. Voici une image : En fait c'est exactement ca que je veux, sauf la partie "Egalité dans cette manche", bien entendu, et avec mon windowskin et ma police d'écriture. Voici mon WindowSkin pour que vous fassiez l'apparence de la fenetre, au cas ou : Et ma police d'écriture est Sylfaen. Normalemet, elle est déja dans Windows. SI possible mettez-la en Noir contour Blanc taille 24. Merci d'avance ! |
|
| |
Va-nu-pieds Lv.4
Age : 35 Avertissements : 3 Inscrit le : 28/04/2009 Messages : 51
| Sujet: Re: Création d'une petite fenêtre de menu. Mer 20 Mai 2009 - 8:36 | |
| Je vais voir si je peux faire quelque chose je te redit sa ce soir ^^ P.S. c'est a toi de retoucher l'image par contre, je suis très nul dans ce domaine XD |
|
| |
Chevalier Lv.17
Age : 31 Inscrit le : 27/04/2008 Messages : 1835
| Sujet: Re: Création d'une petite fenêtre de menu. Mer 20 Mai 2009 - 11:14 | |
| a te va?
Dernière édition par Gothor le Mer 20 Mai 2009 - 14:01, édité 1 fois |
|
| |
Va-nu-pieds Lv.4
Age : 35 Avertissements : 3 Inscrit le : 28/04/2009 Messages : 51
| Sujet: Re: Création d'une petite fenêtre de menu. Mer 20 Mai 2009 - 12:19 | |
| Tien j'ai reusi a le faire - Spoiler:
module Cache def self.menu(filename) load_bitmap("Graphics/system/", filename) end end
class Scene_Menu < Scene_Base def initialize(menu_index = 0) @menu_index = menu_index end
def start super create_command_window @menu_com = Sprite.new @command_window.x = 900 end
def terminate super @command_window.dispose end
def update super @command_window.update if @command_window.active update_command_selection end end def create_command_window s1 = "" s2 = "" @command_window = Window_Command.new(160, [s1, s2]) @command_window.index = @menu_index end
def update_command_selection case @command_window.index when 0 @menu_com.bitmap = Cache.system("image continu") when 1 @menu_com.bitmap = Cache.system("image quitter") end if Input.trigger?(Input::B) Sound.play_cancel $scene = Scene_Map.new elsif Input.trigger?(Input::C) Sound.play_decision case @command_window.index when 0 $scene = Scene_Map.new @menu_com.visible = false when 1 $scene = Scene_Title.new @menu_com.visible = false end end end end
Alors tous ce que tu as a faire c'est de remplacer Scene_Menu par tous ceci. Puis après changer le nom des images continue et quitter voila jespère que je t'ai aider ^^ |
|
| |
Vagabond Lv.5
Age : 28 Inscrit le : 20/04/2009 Messages : 88
| Sujet: Re: Création d'une petite fenêtre de menu. Jeu 21 Mai 2009 - 8:02 | |
| Gothor, tu pourrais poster le script s''il te plait ? Ce que tu as fait me convient =p |
|
| |
Va-nu-pieds Lv.4
Age : 35 Avertissements : 3 Inscrit le : 28/04/2009 Messages : 51
| Sujet: Re: Création d'une petite fenêtre de menu. Jeu 21 Mai 2009 - 12:38 | |
| Um ok je me sens rejeter.... |
|
| |
Chevalier Lv.17
Age : 31 Inscrit le : 27/04/2008 Messages : 1835
| Sujet: Re: Création d'une petite fenêtre de menu. Jeu 21 Mai 2009 - 13:40 | |
| Bon, donc tu rajoutes un script au dessus de main: - Code:
-
class Scene_End < Scene_Base alias add_start start alias add_terminate terminate def start add_start @variable = Window_Mess.new(186, 109, 172, 60) # Position et taille de la fenêtre selon le modèle : (Position X, Position Y, Taille X, Taille Y) end def terminate add_terminate @variable.dispose end end ############################### class Window_Mess < Window_Base def initialize(x, y, w, h) super(x, y, w, h) refresh(w) end def refresh(width) self.contents.clear self.contents.draw_text(0, 0, width, WLH, " Pause", 0) end end Ensuite tu remplaces Scene_Map par ça: - Code:
-
#============================================================================== # ** Scene_Map #------------------------------------------------------------------------------ # This class performs the map screen processing. #==============================================================================
class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super $game_map.refresh @spriteset = Spriteset_Map.new @message_window = Window_Message.new end #-------------------------------------------------------------------------- # * Execute Transition #-------------------------------------------------------------------------- def perform_transition if Graphics.brightness == 0 # After battle or loading, etc. fadein(30) else # Restoration from menu, etc. Graphics.transition(15) end end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super if $scene.is_a?(Scene_Battle) # If switching to battle screen @spriteset.dispose_characters # Hide characters for background creation end snapshot_for_background @spriteset.dispose @message_window.dispose if $scene.is_a?(Scene_Battle) # If switching to battle screen perform_battle_transition # Execute pre-battle transition end end #-------------------------------------------------------------------------- # * Basic Update Processing #-------------------------------------------------------------------------- def update_basic Graphics.update # Update game screen Input.update # Update input information $game_map.update # Update map @spriteset.update # Update sprite set end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super $game_map.interpreter.update # Update interpreter $game_map.update # Update map $game_player.update # Update player $game_system.update # Update timer @spriteset.update # Update sprite set @message_window.update # Update message window unless $game_message.visible # Unless displaying a message update_transfer_player update_encounter update_call_menu update_call_debug update_scene_change end end #-------------------------------------------------------------------------- # * Fade In Screen # duration : time # If you use Graphics.fadeout directly on the map screen, a number of # problems can occur, such as weather effects and parallax scrolling # being stopped. So instead, perform a dynamic fade-in. #-------------------------------------------------------------------------- def fadein(duration) Graphics.transition(0) for i in 0..duration-1 Graphics.brightness = 255 * i / duration update_basic end Graphics.brightness = 255 end #-------------------------------------------------------------------------- # * Fade Out Screen # duration : time # As with the fadein above, Graphics.fadein is not used directly. #-------------------------------------------------------------------------- def fadeout(duration) Graphics.transition(0) for i in 0..duration-1 Graphics.brightness = 255 - 255 * i / duration update_basic end Graphics.brightness = 0 end #-------------------------------------------------------------------------- # * Player Transfer Processing #-------------------------------------------------------------------------- def update_transfer_player return unless $game_player.transfer? fade = (Graphics.brightness > 0) fadeout(30) if fade @spriteset.dispose # Dispose of sprite set $game_player.perform_transfer # Execute player transfer $game_map.autoplay # Automatically switch BGM and BGS $game_map.update Graphics.wait(15) @spriteset = Spriteset_Map.new # Recreate sprite set fadein(30) if fade Input.update end #-------------------------------------------------------------------------- # * Encounter Processing #-------------------------------------------------------------------------- def update_encounter return if $game_player.encounter_count > 0 # Check steps return if $game_map.interpreter.running? # Event being executed? return if $game_system.encounter_disabled # Encounters forbidden? troop_id = $game_player.make_encounter_troop_id # Determine troop return if $data_troops[troop_id] == nil # Troop is invalid? $game_troop.setup(troop_id) $game_troop.can_escape = true $game_temp.battle_proc = nil $game_temp.next_scene = "battle" preemptive_or_surprise end #-------------------------------------------------------------------------- # * Determine Preemptive Strike and Surprise Attack Chance #-------------------------------------------------------------------------- def preemptive_or_surprise actors_agi = $game_party.average_agi enemies_agi = $game_troop.average_agi if actors_agi >= enemies_agi percent_preemptive = 5 percent_surprise = 3 else percent_preemptive = 3 percent_surprise = 5 end if rand(100) < percent_preemptive $game_troop.preemptive = true elsif rand(100) < percent_surprise $game_troop.surprise = true end end #-------------------------------------------------------------------------- # * Determine if Menu is Called due to Cancel Button #-------------------------------------------------------------------------- def update_call_menu if Input.trigger?(Input::B) return if $game_map.interpreter.running? # Event being executed? return if $game_system.menu_disabled # Menu forbidden? $game_temp.menu_beep = true # Set SE play flag $game_temp.next_scene = "menu" end end #-------------------------------------------------------------------------- # * Determine Bug Call Due to F9 key #-------------------------------------------------------------------------- def update_call_debug if $TEST and Input.press?(Input::F9) # F9 key during test play $game_temp.next_scene = "debug" end end #-------------------------------------------------------------------------- # * Execute Screen Switch #-------------------------------------------------------------------------- def update_scene_change return if $game_player.moving? # Is player moving? case $game_temp.next_scene when "battle" call_battle when "shop" call_shop when "name" call_name when "menu" call_menu when "save" call_save when "debug" call_debug when "gameover" call_gameover when "title" call_title else $game_temp.next_scene = nil end end #-------------------------------------------------------------------------- # * Switch to Battle Screen #-------------------------------------------------------------------------- def call_battle @spriteset.update Graphics.update $game_player.make_encounter_count $game_player.straighten $game_temp.map_bgm = RPG::BGM.last $game_temp.map_bgs = RPG::BGS.last RPG::BGM.stop RPG::BGS.stop Sound.play_battle_start $game_system.battle_bgm.play $game_temp.next_scene = nil $scene = Scene_Battle.new end #-------------------------------------------------------------------------- # * Switch to Shop Screen #-------------------------------------------------------------------------- def call_shop $game_temp.next_scene = nil $scene = Scene_Shop.new end #-------------------------------------------------------------------------- # * Switch to Name Input Screen #-------------------------------------------------------------------------- def call_name $game_temp.next_scene = nil $scene = Scene_Name.new end #-------------------------------------------------------------------------- # * Switch to Menu Screen #-------------------------------------------------------------------------- def call_menu if $game_temp.menu_beep Sound.play_decision $game_temp.menu_beep = false end $game_temp.next_scene = nil $scene = Scene_End.new end #-------------------------------------------------------------------------- # * Switch to Save Screen #-------------------------------------------------------------------------- def call_save $game_temp.next_scene = nil $scene = Scene_File.new(true, false, true) end #-------------------------------------------------------------------------- # * Switch to Debug Screen #-------------------------------------------------------------------------- def call_debug Sound.play_decision $game_temp.next_scene = nil $scene = Scene_Debug.new end #-------------------------------------------------------------------------- # * Switch to Game Over Screen #-------------------------------------------------------------------------- def call_gameover $game_temp.next_scene = nil $scene = Scene_Gameover.new end #-------------------------------------------------------------------------- # * Switch to Title Screen #-------------------------------------------------------------------------- def call_title $game_temp.next_scene = nil $scene = Scene_Title.new fadeout(60) end #-------------------------------------------------------------------------- # * Execute Pre-battle Transition #-------------------------------------------------------------------------- def perform_battle_transition Graphics.transition(80, "Graphics/System/BattleStart", 80) Graphics.freeze end end |
|
| |
Chevalier Lv.17
Age : 31 Inscrit le : 27/04/2008 Messages : 1835
| Sujet: Re: Création d'une petite fenêtre de menu. Jeu 21 Mai 2009 - 13:40 | |
| et enfin Scene_End par ça: - Code:
-
#============================================================================== # ** Scene_End #------------------------------------------------------------------------------ # This class performs game end screen processing. #==============================================================================
class Scene_End < Scene_Base #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background create_command_window end #-------------------------------------------------------------------------- # * Post-Start Processing #-------------------------------------------------------------------------- def post_start super open_command_window end #-------------------------------------------------------------------------- # * Pre-termination Processing #-------------------------------------------------------------------------- def pre_terminate super close_command_window end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_command_window dispose_menu_background end #-------------------------------------------------------------------------- # * Return to Original Screen #-------------------------------------------------------------------------- def return_scene $scene = Scene_Map.new end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_menu_background @command_window.update if Input.trigger?(Input::B) Sound.play_cancel return_scene elsif Input.trigger?(Input::C) case @command_window.index when 0 command_cancel when 1 # shutdown command_shutdown end end end #-------------------------------------------------------------------------- # * Update Background for Menu Screen #-------------------------------------------------------------------------- def update_menu_background super @menuback_sprite.tone.set(0, 0, 0, 128) end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_command_window s1 = Vocab::cancel s2 = Vocab::shutdown @command_window = Window_Command.new(172, [s1, s2]) @command_window.x = (544 - @command_window.width) / 2 @command_window.y = (416 - @command_window.height) / 2 @command_window.openness = 0 end #-------------------------------------------------------------------------- # * Dispose of 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 #-------------------------------------------------------------------------- # * Process When Choosing [To Title] Command #-------------------------------------------------------------------------- def command_to_title Sound.play_decision RPG::BGM.fade(800) RPG::BGS.fade(800) RPG::ME.fade(800) $scene = Scene_Title.new close_command_window Graphics.fadeout(60) end #-------------------------------------------------------------------------- # * Process When Choosing [Shutdown] Command #-------------------------------------------------------------------------- def command_shutdown Sound.play_decision RPG::BGM.fade(800) RPG::BGS.fade(800) RPG::ME.fade(800) $scene = nil end #-------------------------------------------------------------------------- # * Process When Choosing [Cancel] Command #-------------------------------------------------------------------------- def command_cancel Sound.play_decision return_scene end end |
|
| |
Va-nu-pieds Lv.4
Age : 35 Avertissements : 3 Inscrit le : 28/04/2009 Messages : 51
| Sujet: Re: Création d'une petite fenêtre de menu. Jeu 21 Mai 2009 - 17:47 | |
| wala complexe ton truc je pense toujours que mon script est mieux, il est nètement plus cour et il marche lol.. |
|
| |
Chevalier Lv.17
Age : 31 Inscrit le : 27/04/2008 Messages : 1835
| Sujet: Re: Création d'une petite fenêtre de menu. Jeu 21 Mai 2009 - 18:13 | |
| nan, au final c'est super court ce que j'ai fait, mais je voulais pas embêter les gens à chercher telle ligne dans tl script, donc j'ai tout donné... j'ai juste rajouter le premier script, modifier une ligne du second et enlever une partie et en modifier une deuxième dans le troisième ^^' |
|
| |
Va-nu-pieds Lv.4
Age : 35 Avertissements : 3 Inscrit le : 28/04/2009 Messages : 51
| Sujet: Re: Création d'une petite fenêtre de menu. Jeu 21 Mai 2009 - 18:18 | |
| je suis toujours jaloux ^^mais je voi pas pourquoi tu a changer scene_map et scene_end |
|
| |
Chevalier Lv.17
Age : 31 Inscrit le : 27/04/2008 Messages : 1835
| Sujet: Re: Création d'une petite fenêtre de menu. Jeu 21 Mai 2009 - 18:27 | |
| C'est très simple, voilà la partie que j'ai modifié sur le scene_map: - Code:
-
#-------------------------------------------------------------------------- # * Switch to Menu Screen #-------------------------------------------------------------------------- def call_menu if $game_temp.menu_beep Sound.play_decision $game_temp.menu_beep = false end $game_temp.next_scene = nil $scene = Scene_End.new end Cela détermine la fenêtre qui s'affiche lorsque le joueur appuies sur échap. J'ai donc remplacé Scene_Menu par Scene_End, ainsi, le joueur arrive directement à la fenêtre pour continuer ou quitter le jeu... Pour scene_end non plus pas grand chose: - Code:
-
#-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_command_window s1 = Vocab::cancel s2 = Vocab::shutdown @command_window = Window_Command.new(172, [s1, s2]) @command_window.x = (544 - @command_window.width) / 2 @command_window.y = (416 - @command_window.height) / 2 @command_window.openness = 0 end J'ai retirer l'option Ecran titre, ainsi, il ne reste que deux options au joueur et après j'ai juste remplacé un scene_menu qui traîne je ne sais plus où par un scene_map... C'est tout |
|
| |
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
| Sujet: Re: Création d'une petite fenêtre de menu. Jeu 21 Mai 2009 - 18:47 | |
| Gothor, y'a plus simple que de modifier tout le script =) - Code:
-
class Scene_End < Scene_Base alias add_start start alias add_terminate terminate def start add_start @variable = Window_Mess.new(186, 109, 172, 60) # Position et taille de la fenêtre selon le modèle : (Position X, Position Y, Taille X, Taille Y) end def terminate add_terminate @variable.dispose end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_command_window s1 = Vocab::cancel s2 = Vocab::shutdown @command_window = Window_Command.new(172, [s1, s2]) @command_window.x = (544 - @command_window.width) / 2 @command_window.y = (416 - @command_window.height) / 2 @command
end ############################### class Window_Mess < Window_Base def initialize(x, y, w, h) super(x, y, w, h) refresh(w) end def refresh(width) self.contents.clear self.contents.draw_text(0, 0, width, WLH, " Pause", 0) end end
class Scene_Map <Scene_Map #-------------------------------------------------------------------------- # * Switch to Menu Screen #-------------------------------------------------------------------------- def call_menu if $game_temp.menu_beep Sound.play_decision $game_temp.menu_beep = false end $game_temp.next_scene = nil $scene = Scene_End.new end end
Fera la même chose =) Pour réécrire une méthode, il suffit de mettre la méthode en question et c'est ça qui sera pris en compte ^^' (Si tu met le script au dessus de Main bien entendu) |
|
| |
Chevalier Lv.17
Age : 31 Inscrit le : 27/04/2008 Messages : 1835
| Sujet: Re: Création d'une petite fenêtre de menu. Ven 22 Mai 2009 - 7:43 | |
| Wouh, je savais pas du tout, je sais absolument pas scripter, donc bon, j'ai modifier deux/trois trucs par çi par là ^^ mais tu m'apprends quelque chose merci Blockade |
|
| |
| Sujet: Re: Création d'une petite fenêtre de menu. | |
| |
|
| |
| Création d'une petite fenêtre de menu. | |
|