Partagez
Aller en bas
avatar
MachineFr
Membre

Nombre de messages : 11
Distinction : aucune
Date d'inscription : 22/08/2015

Aide pour script

le Mar 25 Aoû 2015 - 1:27
Bonjour a tous, j'aimerai bien que quelqu'un m'aide j'ai actuellement fait ce script (grace au tuto qui est disponible sur ce forum) :
class Window_Panneau < Window_Base #Créer la class Window_Tuto°.

def initialize #Créer la fonction initialize.
fenetre = 0
if fenetre == 0

super(197, 158, 150, 100)

end
create_text

end #Ferme la fonction.

def create_text

self.contents.clear

contents.draw_text( 40, 25, 200, 25, "VILLE")

end #Ferme la fonction.
end #Ferme la class.

class Scene_Panneau < Scene_Map #Créer la class Scene_Tuto°.

def start #Ne pas renommer la fonction

super

create_window_Panneau

end #Ferme la fonction.

def update #Ne pas renommer la fonction

super #Lance le code de l'héritage

if Input.trigger?(:B)

fenetre = 1

return_scene

end #Ferme la fonction.
end #Ferme la fonction.

def create_window_Panneau #Créer la fonction create_window_tuto°

@window_Panneau = Window_Panneau.new

end #Ferme la fonction.
end #Ferme la class.
----------------------------------------------
Le probleme, c'est qu'une fois afficher, le fenetre ne se ferme plus, j'aimerai bien que quelqu'un qui si connaisse me regle le probleme et m'explique comme il a fait, c'est toujours bon d’apprendre Very Happy

merci beaucoup a celui qui m'aidera
avatar
Spytje
Administrateur

Nombre de messages : 5901
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Re: Aide pour script

le Mar 25 Aoû 2015 - 1:55
Mauvaise section je déplace.
avatar
vincent26
Membre

Nombre de messages : 766
Age : 23
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Re: Aide pour script

le Mar 1 Sep 2015 - 15:09
Salut

voila une modif pour ton probleme :
Code:

class Window_Panneau < Window_Base #Créer la class Window_Tuto°.

  def initialize #Créer la fonction initialize.
    super(197, 158, 150, 100) #Lance le code de l'héritage
    create_text #Lance la creation du texte
  end #Ferme la fonction.

  def create_text #Créer la fonction create_text.
    self.contents.clear #Efface le contenue.
    contents.draw_text( 40, 25, 200, 25, "VILLE") #Ecris dans le contenue.
  end #Ferme la fonction.
 
end #Ferme la class.

class Scene_Panneau < Scene_MenuBase #Créer la class Scene_Tuto°.
  #La scene hérite de Scene_MenuBase afin d'avoir la creation de l'image de la map en fond

  #Start est automatiquement lancer lors de l'appel de la scene
  def start #Ne pas renommer la fonction VOIR Scene_Base POUR + D'INFO
    super #Lance le code de l'héritage
    create_window_Panneau #Lance la creation de la window
  end #Ferme la fonction.

  #Terminate est automatiquement lancée lors du return_scene
  def terminate #Ne pas renommer la fonction VOIR Scene_Base POUR + D'INFO
    super #Lance le code de l'héritage
    @window_Panneau.dispose #Supprime la window (dispose est de base une def de @window_Panneau)
  end #Ferme la fonction.
 
  #Update est automatiquement lancée toute les frame (soit 60 fois par seconde)
  def update #Ne pas renommer la fonction VOIR Scene_Base POUR + D'INFO
    super #Lance le code de l'héritage
    if Input.trigger?(:B) #Detecte l'appuye d'une touche lier a B (de base echap ou X)
      return_scene # Fait un retour de scene (donc finie celle-ci et retourne a la precedente)
    end #Ferme la fonction.
  end #Ferme la fonction.

  def create_window_Panneau #Créer la fonction create_window_tuto°
    @window_Panneau = Window_Panneau.new # Creer la window
  end #Ferme la fonction.
end #Ferme la class.

j'ai tout détailler mais pour ce qui est de l’héritage de ta scene par Scene_Map cela ne convient pas ^^. si tu souhaite véritablement voir les element de la map continuer a bouger dit le moi je te ferais un autre script avec une explication Wink
avatar
MachineFr
Membre

Nombre de messages : 11
Distinction : aucune
Date d'inscription : 22/08/2015

Re: Aide pour script

le Mar 1 Sep 2015 - 21:15
Merci Beaucoup, enfaite le but de se script et juste d'afficher le nom de la ville quand on apuuie sur un bouton pres d'un panneau , donc j'aurai jsute besoin que lorsque qu'on appuie sur un bouton, le texte s'affiche et qu'apres il disparait, soit ne bougeant, soit ne re-appuyant sur le bouton Wink
avatar
vincent26
Membre

Nombre de messages : 766
Age : 23
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Re: Aide pour script

le Mar 1 Sep 2015 - 21:41
oki tu veut que je te code ça ? ou tu souhaite te débrouiller seul avec un peu d'aide ?
avatar
MachineFr
Membre

Nombre de messages : 11
Distinction : aucune
Date d'inscription : 22/08/2015

Re: Aide pour script

le Mer 2 Sep 2015 - 20:31
j'aimerai que tu me le fasse, car je doti rendre sa assez vite ^^ je suis pas tous seul sur le projet, mais pourrai-tu faire comme l'autre code, mettre des commentaire partout pour que je le comprennent . en tout cas merci beaucoup pour l'aide sans toi j'aurai pas reussie
avatar
vincent26
Membre

Nombre de messages : 766
Age : 23
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Re: Aide pour script

le Ven 4 Sep 2015 - 16:54
Voila la modif Wink

J'ai oublier de préciser mais désormais pour lancer la window il faut faire cette appel de script :
SceneManager.scene.open_map_name

Si tu as le moindre soucis de compréhension ou autre dit le moi Wink

Code:

class Scene_Map < Scene_Base #On modifie la class Scene_Map
 
  alias create_all_windows_map_name create_all_windows #On fait une copie de la
  #def create_all_windows sous le nouveaux nom create_all_windows_map_name
  def create_all_windows #On remplace l'ancienne def create_all_windows
    create_all_windows_map_name # On rappel la copie pour conserver les donnée de Scene_Map
    create_map_name # On appel la nouvelle fonction de creation de la fenêtre
  end # fin de la def create_all_windows
 
  def create_map_name # Nouvelle def create_map_name
    @nom_map = Window_Panneau.new # On assigne la window dans une variables
    @nom_map.openness = 0 # On définit sont ouverture a 0 (elle est donc fermer cf. AIDE)
  end # Fin def create_map_name
 
  def open_map_name # Nouvelle def open_map_name
    if @nom_map.close? #On test que la window est bien fermer (pour eviter que
      #l'appuye de la touche entrer relance l'event et donc sa réouverture lors
      #du test dans la def update)
      @nom_map.refresh # Rafraichie le contenue de la window (en cas de changement de map)
      @nom_map.open #On ouvre la window
    end
  end # Fin def open_map_name
 
  alias update_nom_map update #On fait une copie de la
  #def update sous le nouveaux nom update_nom_map
  def update # On remplace l'ancienne def update
    update_nom_map # On appel la copie pour eviter les problême (cette structure
    #alias puis reassignation est equivalente a ajouter les ligne ci-dessous dans
    #la def update du script Scene_Map)
    if @nom_map.open? #On test que la window est bien ouverte
      if Input.trigger?(:B) || Input.trigger?(:C) || Input.dir4 != 0 #On test l'appuye de la
        #touche X ou ENTER ou des touches directionnelles
        @nom_map.close #On ferme la window
      end #fin du if
    end# fin du if
  end # Fin def update
 
  #Pour empecher l'ouverture du menu par l'appuye de la touche X pour quitter la
  #fenetre on modifie ce qui suit
 
  alias update_call_menu_map_name update_call_menu#On fait une copie de la
  #def update_call_menu sous le nouveaux nom update_call_menu_map_name
  def update_call_menu # On remplace l'ancienne def update_call_menu
    return if @nom_map.open? # On fait une coupure si la window est encore ouverte
    update_call_menu_map_name # On appel la copie de la def sinon pour executer l'appel de manière normal
  end # Fin def update_call_menu
 
end # Fin def Scene_Map

class Window_Panneau < Window_Base #Créer la class Window_Tuto°.

  def initialize #Créer la fonction initialize.
    super(Graphics.width/2-75, Graphics.height/2-24, 150, 48) #Lance le code de l'héritage
    refresh #Lance le refresh
  end #Ferme la fonction.

  def refresh # Creer la fonction refresh
    create_text #Lance la creation du texte
  end #Ferme la fonction.
 
  def create_text #Créer la fonction create_text.
    self.contents.clear #Efface le contenue.
    map_name = $game_map.display_name #Récuperation du nom de la map
    if !map_name.empty? #Test que le nom ne soit pas vide
     
      self.width = text_size(map_name).width+28 # Ajuste la largeur de la fenêtre automatiquement au texte
      #(+28 car il ya 24 pixel de bord a prendre en compte en plus et 4 pixel de plus encore pour contrer
      #un bug d'affichage qui intervient parfois)
     
      self.x = Graphics.width/2-width/2 #Ajuste la position pour centrer la window dans l'écran
      create_contents # Recreer l'image de contenue (car la taille de la fenêtre a changer)
                                                      #▼# => permet de centrer le texte (0 texte a droite, 1 texte au centre, 2 texte a gauche)
      contents.draw_text( 0, 0, width-24, 24, map_name,1) #Ecris dans le contenue le nom de la map.
    else # Si le nom est vide alors :
     
      self.width = text_size("Inconnue").width+28 # Ajuste la largeur de la fenêtre automatiquement au texte (idem ci-dessus pour le 28)
      self.x = Graphics.width/2-width/2 #Ajuste la position pour centrer la window dans l'écran
      create_contents # Recreer l'image de contenue (car la taille de la fenêtre a changer)
      contents.draw_text( 0, 0, width-24, 24, "Inconnue",1) #Ecris dans le contenue le mot Inconnue.
    end # Fin du if
  end #Ferme la fonction.
 
end #Ferme la class.
avatar
MachineFr
Membre

Nombre de messages : 11
Distinction : aucune
Date d'inscription : 22/08/2015

Re: Aide pour script

le Ven 4 Sep 2015 - 21:27
merci bro, ça marche nickel Very Happy

au faite, j'ai essayer ton jeu, j'ai pas reussis a sortir de la grotte x) je crois que je suis pas douée
Contenu sponsorisé

Re: Aide pour script

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum