Partagez
Aller en bas
filsduloup
filsduloup
Membre

Nombre de messages : 85
Age : 33
Distinction : aucune
Date d'inscription : 30/01/2008

[Resolu]fenetre vierge en script Empty [Resolu]fenetre vierge en script

le Dim 6 Avr 2008 - 16:00
je voudrait juste faire une fenetre vierge dans lequelle je mettrait des informations mais j'arrive pas !!!! grrr !
Le message d'erreur veut suprimer toujour la derniere ligne ! Rho si quelqu'un pouvait m'expliquer comment créé une fenetre vierge en script se serait super sympa :

[Resolu]fenetre vierge en script 264173

Code:
#==============================
# ■ Window_Reputation par Fils du loup
#------------------------------
#Permet de créer une fenêtre un sous menu pour Branlotin
#==============================
class Scene_Reputation
 
  class Ma_Scene
 
  def main
    @ma_fenêtre = Ma_Reput.new(0,0,640,480)
    @ma_fenêtre.visible = false
    @ma_fenêtre.active = false
    Graphics.transition
    loop do
      Input.update
      Graphics.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @Ma_Reput.dispose
    @ma_seconde_fenêtre.dispose
  end
    def update
      if @ma_fenêtre.active == false
      rendre_toutes_les_fenêtres_invisibles
      @ma_fenêtre.visible = true
      @ma_fenêtre.active = true
    end
        #Si le bouton B est enclenché
      if Input.trigger?(Input::B)
        #jouer le son d'anulation et retourner au title
          Sound.play_cancel
          $scene = Scene_Branlotin.new
        end
      end
#=================================================================
  class Ma_Reput < Window_Selectable
 
  def initialize(x, y, longueur, largeur)
    super(100, 100, 100, 100)
    self.contents = Bitmap.new(longueur - 32, largeur - 32)
    self.contents.font.name = $fontface
    @item_max = 2
    @column_max = 2
    self.index = 0
    refresh
  end 
end
  def refresh
    self.contents.clear  # On efface le contenu de la fenêtre (pour être sûr qu'il n'y a rien d'autre d'écrit.)
  end


Dernière édition par filsduloup le Jeu 10 Avr 2008 - 14:39, édité 1 fois
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

[Resolu]fenetre vierge en script Empty Re: [Resolu]fenetre vierge en script

le Dim 6 Avr 2008 - 17:09
houla... pas mal d'erreurs dans ton script:

Code:
class Scene_Reputation
  class Ma_Scene
pourquoi imbriquer deux classes ?
il suffirait juste d'une...

@Ma_Reput.dispose : faux : c'est @ma_fenêtre qui contient la fenetre a afficher, donc @ma_fenêtre.dispose

@ma_seconde_fenêtre.dispose : impossible de la fermer, vu que @ma_seconde_fenêtre ne contient rien (= nil)

Tu as fermé la classe Reput, avant la methode refresh... ce qui fait que son appel dans la methode initialize ne renvoie a rien... voila pourquoi il veut supprimer la derniere ligne

voici le script corrigé:
Code:
#==============================
# ■ Window_Reputation par Fils du loup
#------------------------------
#Permet de créer une fenêtre un sous menu pour Branlotin
#==============================
class Scene_Reputation
  def main
    @ma_fenêtre = Ma_Reput.new(0,0,640,480)
    @ma_fenêtre.visible = false
    @ma_fenêtre.active = false
    Graphics.transition
    loop do
      Input.update
      Graphics.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @ma_fenêtre.dispose
  end
  def update
    if @ma_fenêtre.active == false
      @ma_fenêtre.visible = true
      @ma_fenêtre.active = true
    end
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Branlotin.new
    end
  end
end

#=================================================================
class Ma_Reput < Window_Selectable
 
  def initialize(x, y, longueur, largeur)
    super(100, 100, 100, 100)
    self.contents = Bitmap.new(longueur - 32, largeur - 32)
    self.contents.font.name = $fontface
    @item_max = 2
    @column_max = 2
    self.index = 0
    refresh
  end
def refresh
  self.contents.clear 
end
end

ps: fais attention: n'utilise pas d'accents dans les noms de variables
respecte les conventions:
on nomme les classes pour une window: Window_Xxxx
filsduloup
filsduloup
Membre

Nombre de messages : 85
Age : 33
Distinction : aucune
Date d'inscription : 30/01/2008

[Resolu]fenetre vierge en script Empty Re: [Resolu]fenetre vierge en script

le Dim 6 Avr 2008 - 18:48
ouais j'apprend, merci berka, mais j'ai encore un probleme dans ma fenetre il y a le curseure de selection comment je fait pour l'enlever ???
au lieu de créé un scene reputation est-ce que je peut l'imbriquer avec ma scene branlotin de maniere a ce que ma scene soit sur le coté et qu'en fonction de mes choix ca ouvres des fenetes sur le coté ???
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

[Resolu]fenetre vierge en script Empty Re: [Resolu]fenetre vierge en script

le Dim 6 Avr 2008 - 18:58
bien sur !
tu peux creer juste une fenetre Window_Reput
que tu appelles, puis caches dans l'initialize de ta scene Branlotin:
Code:
@ma_fenêtre = Ma_Reput.new(0,0,640,480)
    @ma_fenêtre.visible = false
    @ma_fenêtre.active = false
tu la disposes aussi

pour le curseur de selection: au lieu d'heriter ta window de la Window_Selectable, tu fais <Window_Base
filsduloup
filsduloup
Membre

Nombre de messages : 85
Age : 33
Distinction : aucune
Date d'inscription : 30/01/2008

[Resolu]fenetre vierge en script Empty Re: [Resolu]fenetre vierge en script

le Dim 6 Avr 2008 - 19:14
C'est bon j'ai réussi je sens que ce script je v'est m'en servire plein de fois ! Nah !

En tout cas merci Berka grace a ca mon projet a fait un grand pas ! il me reste plus qu'a l'utiliser
pour inserer des infos personnelle sur le personnage, pour la reputation du personnage auprés des differente faction de mon jeu !
bref plein de truc en perspective !!!

PS: mince j'arrive pas a ecrire dedans, j'ai beau inserer :

Code:
  self.contents.font.color = system_color
  self.contents.draw_text(110, 32, 140, 32, "Réputation ")

ca affiche rien dans mon script !
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

[Resolu]fenetre vierge en script Empty Re: [Resolu]fenetre vierge en script

le Dim 6 Avr 2008 - 23:20
attention, pour le texte, les abscisses (x) sont basées sur la fenetre:

donc essaye:

Code:
  self.contents.font.color = system_color
  self.contents.draw_text(10, 32, 140, 32, "Réputation ")
filsduloup
filsduloup
Membre

Nombre de messages : 85
Age : 33
Distinction : aucune
Date d'inscription : 30/01/2008

[Resolu]fenetre vierge en script Empty Re: [Resolu]fenetre vierge en script

le Lun 7 Avr 2008 - 12:31
riena fair j'avait deja essayer de changer l'absisse du texte, mais sa fonctionne pas !

j'ai rééssayer mais ca marche toujour pas ! peut que je le place pas au bonne endroit je le place aprés
Code:
self.contents.clear
!

Je remet le script car j'ai apporté quelque modifiation qui ont pu provoquer ce bug !

Code:
#==============================
# ■ Window_Reputation par Fils du loup
#------------------------------
#Permet de créer une fenêtre un sous menu pour Branlotin
#==============================
class Scene_Reputation
  def main
    @ma_fenêtre = Ma_Reput.new(0,0,545,417)
    @ma_fenêtre.visible = false
    @ma_fenêtre.active = false
    Graphics.transition
    loop do
      Input.update
      Graphics.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @ma_fenêtre.dispose
  end
  def update
    if @ma_fenêtre.active == false
      @ma_fenêtre.visible = true
      @ma_fenêtre.active = true
    end
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Branlotin.new
    end
  end
end

class Ma_Reput <Window_Base
  def initialize(x, y, longueur, largeur)
    super(0, 0,  545, 417)
    self.contents = Bitmap.new(longueur - 32, largeur - 32)
    self.contents.font.name = $fontface 
    @item_max = 2
    @column_max = 2
    refresh
    end
def refresh
  self.contents.clear   
self.contents.font.color = system_color
  self.contents.draw_text(10, 32, 140, 32, "Réputation ")
  end
end
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

[Resolu]fenetre vierge en script Empty Re: [Resolu]fenetre vierge en script

le Lun 7 Avr 2008 - 16:59
t'es sur xp, ou sur vx ?
si tu es sous vx, la commande:
Code:
self.contents = Bitmap.new(longueur - 32, hauteur - 32)
est inutuile car elle est implantée dans la classe parente, Window_Base

pour ton probleme:
tu as appelé ta fenetre dans une scene, dans son initialisation, donc au tout debut...
il y a une boucle de mise a jour: loop do...end
qui renvoie a la methode update, la methode de mise a jour...

il faut que tu penses a mettre a jour tout ce que tu as ouvert...
donc en dessous de def update, rajoute:
Code:
@ma_fenêtre.update
filsduloup
filsduloup
Membre

Nombre de messages : 85
Age : 33
Distinction : aucune
Date d'inscription : 30/01/2008

[Resolu]fenetre vierge en script Empty Re: [Resolu]fenetre vierge en script

le Lun 7 Avr 2008 - 23:08
[Resolu]fenetre vierge en script 728442 Ca Marcha pas ! GRRRR, j'ai réussi a faire une fenetre mais pas le texte dedans : grrr !

[Resolu]fenetre vierge en script 264173

Je sais plus quoi faire !!!

Snifff !
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

[Resolu]fenetre vierge en script Empty Re: [Resolu]fenetre vierge en script

le Mar 8 Avr 2008 - 12:03
comme ta fenetre etait desactivée... elle n'etait pas mise a jour:

je me suis permis quelques optimisations
Code:
#==============================
# ■ Window_Reputation par Fils du loup
#------------------------------
#Permet de créer une fenêtre un sous menu pour Branlotin
#==============================
class Scene_Reputation
  def main
    @ma_fenêtre = Window_Reput.new(0,0,545,417)
    @ma_fenêtre.visible = @ma_fenêtre.active = false
    Graphics.transition
    loop do
      Input.update
      Graphics.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @ma_fenêtre.dispose
  end
  def update
    if @ma_fenêtre.active == false
      @ma_fenêtre.visible = @ma_fenêtre.active = true
    else #si la fenetre est active, alors: mise a jour
      @ma_fenêtre.update
    end
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Branlotin.new
    end
  end
end

class Window_Reput < Window_Base
  def initialize(x, y, long, larg)
    super(0, 0,  long, larg)
    refresh
  end
  def refresh
    self.contents.clear 
    self.contents.font.color = system_color
    self.contents.draw_text(10, 32, 140, 32, "Réputation ")
  end
end
filsduloup
filsduloup
Membre

Nombre de messages : 85
Age : 33
Distinction : aucune
Date d'inscription : 30/01/2008

[Resolu]fenetre vierge en script Empty Re: [Resolu]fenetre vierge en script

le Mer 9 Avr 2008 - 11:56
Ca marche meme si j'ai pas trop comprit toute tes explication ! En tout cas merci !

Long et dur est (non, bande de pervert) l'aprentissage du ruby ! c'est un chemin plen d'embuche ! Pfiou !
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum