Sujet n°9660
Posté par Noty! le 23 Avr - 00:25 (2011)
Titre : Apprendre le Ruby avec moi =).
(Je ne savais pas ou poster, je fais donc ça ici, changez si nécessaire.)
Bonjour à tous, j'ai décidé d'apprendre le script par moi même ainsi qu'avec l'aide de Palbolsky.
Je partagerais ici mais Notes pour ceux que sa intéresse.
Vous pourrez aussi me donnez des notes à rajouter pour vous faire profitez ainsi qu'à moi, c'est informations.

Mes notes :



Tutoriel de Moy qui peut être très utiles : ./9625-Tuto-Script-Comment-personnalise…

Interface_Echap
X = Largeur
Y = Hauteur
X,Y ne correspondent pas vraiment à la hauteur ou la largeur, ils corresponde pour la plupart des cas à la position (x,y) dans le plan.
Attetion : Contrairement aux maths et aux caltosh graphique, les ordonnées Y ne sont pas positifs vers le haut mais Négatifs.



Y




-




-

X--0++



+




+


Z = Niveau de superposition

Quand on affiche une image, elle est affichée à partir de son sommet haut gauche et de celui du bord de la fenètre.

class Interface_Echap < Window_Base include POKEMON_S  --> Palbolsky : J'utilise ce que Window_Base a
déjà créé, et include POKEMON_S me permet d'utiliser toutes les variables globales du module POKEMON_S  (Assurance)
window_base permet de créer les self.contents

def : définition de méthode, tout ce que l'on créé à l'aide de def est de classe Method et on les appelles donc Méthodes, ce qui est plus logique de définition.

def initialize : Définition qui prévoit d'initialiser les variables dont on aura besoin.


super : Créer le cadre où l'on va travailler.
Sans ce cadre on ne verrait rien.
Exemple : super(0, 0, 640, 480) --> rectangle de 640*480 aux coord 0,0
On crée donc un cadre de 640 sur 480 au coordonnée (X et Y/Abscice et Ordonnée/ Largeur et hauteur) 0 0 (ce qui veut dire qu'il sera placé à partir du somment haut gauche de la fenètre.

Point d'origine : sommet haut-gauche du rectangle
Si l'on indique rien de particulier, c'est toujours le sommet haut-gauche.

L'opacité peut aller de 0 à 255.
self.opacity = 0   Le cadre est invisible.

class Sprite_Dynamique < Sprite 

Ce code ne permet de créé que self.bitmap (Sprite.bitmap)
Ce code sert à dire que la classe Sprite est un ancêtre de Sprite_Dynamique et permet d'utiliser tout les méthodes de Sprite en cas de besoins :
-Méthode non redéfinie exemple : self.bitmap, si cette methode n'est pas redéfinie plutôt que de te chier un Undefined Method le ruby va chercher la methode qui existe déjà dans sprites, mais si elle n'existe pas il va chercher dans les ancêtres de Sprite (Object normalement) et si il ne trouve vraiment pas il y a l'erreur.
-Super : tu as redéfinie la methode (initialize par exemple) et tu veux aussi initialiser sellons les règles de l'ancêtre.

include Module permet d'inclure les constantes et les méthodes dans ta classe.


class Sprite_Dynamique < Sprite

  include Pokemon_Sprite #inclusion des methodes de Pokemon_Sprite comme draw_hp_bar etc..

  def initialize(viewport, bitmap)

    super(viewport)  #Initialisation de Sprite

    unless bitmap

      self.bitmap=Bitmap.new(320,240)  #Les bitmaps ne se créent pas tout seul..

    else

      self.bitmap=bitmap

    end

  end

end






Merci à :
-Palbolsky
-Yuri-岼
-Moy
...
     
     

Posté par Nuri Yuri le 23 Avr - 08:19 (2011)
Pour l'endroit où tu poste ça, je pense que ça a autant sa place dans Tutoriels que dans Libre.

Sinon, je vais corriger certains points:
X,Y ne correspondent pas vraiment à la hauteur ou la largeur, ils corresponde pour la plupart des cas à la position (x,y) dans le plan.
Attetion : Contrairement aux maths et aux caltosh graphique, les ordonnées Y ne sont pas positifs vers le haut mais Négatifs.
Y
-
-
X--0++
+
+


Code:
class Sprite_Dynamique < Sprite

Ce code ne permet de créé que self.bitmap (Sprite.bitmap)
Ce code sert à dire que la classe Sprite est un ancêtre de Sprite_Dynamique et permet d'utiliser tout les méthodes de Sprite en cas de besoins :
-Méthode non redéfinie exemple : self.bitmap, si cette methode n'est pas redéfinie plutôt que de te chier un Undefined Method le ruby va chercher la methode qui existe déjà dans sprites, mais si elle n'existe pas il va chercher dans les ancêtres de Sprite (Object normalement) et si il ne trouve vraiment pas il y a l'erreur.
-Super : tu as redéfinie la methode (initialize par exemple) et tu veux aussi initialiser sellons les règles de l'ancêtre.


include Module permet d'inclure les constantes et les méthodes dans ta classe.
Code:
class Sprite_Dynamique < Sprite
  include Pokemon_Sprite #inclusion des methodes de Pokemon_Sprite comme draw_hp_bar etc..
  def initialize(viewport, bitmap)
    super(viewport)  #Initialisation de Sprite
    unless bitmap
      self.bitmap=Bitmap.new(320,240)  #Les bitmaps ne se créent pas tout seul..
    else
      self.bitmap=bitmap
    end
  end
end


Pour def, ça ne veux pas dire définition tout seul, ça veux dire définition de méthode, tout ce que l'on créé à l'aide de def est de classe Method et on les appelles donc Méthodes, ce qui est plus logique de définition.

C'est tout pour le moment.

Posté par Noty! le 23 Avr - 10:55 (2011)
Waw merci, ça va beaucoup m'aider, je te met dans les crédits et j'ajoute.
Ps : En ce moment j'essaye de comprendre Interface_Echap, donc on pourrait diviser tout ça en chapitres...
On va d'abors essayer de comprendre les expressions de ce script =).

EDIT VISIBEL : Bon je pense qu'on va passer au Draw_Text_interface
à traduire : draw_text_interface(16, 253, 50, 25, "POKéDEX", 1)
Ce que je pense avoir compris :
Les 2 premier nombre doivent surement correspondrent à X et Y , l'avant dernier doit être Z sinon, je sais pas, peut être les couleur...

Au passage, une question : Quand on choisis fille ou garçon, ça active une variable qui influence sur l'image persogars ou persofille placé sur la carte dresseur?
Car je voudrais placer ça dans mon menu, une image de la fille ou du garçon selon le choix...

Posté par Nuri Yuri le 23 Avr - 11:32 (2011)
La variable 1000 ($game_variables[1000]) met 1 pour le garçon et 2 pour la fille.

Posté par Noty! le 23 Avr - 12:51 (2011)
Ok, merci.
Et pour le Draw_text?

Posté par Nuri Yuri le 23 Avr - 13:19 (2011)
Bitmap.draw_text(x,y,width,height,text,align)
(X,Y) => Coordonnées du rectangle.
Width=> Largeur du rectangle dans lequel le texte seras dessiné, ne pas mettre n’importe quoi si vous voulez center le texte.
Height =>Hauteur du rectangle, il vau mieux mettre la taille de la police car Draw_text dessine au centre de la Hauteur.
text => Texte à dessiner.
align => Alignement du texte sur la largeur => 0 à gauche, 1 au centre, 2 à droite | ce paramètre est optionnel.

Je pense que c'est la même chose pour draw_text_interface.

Posté par Moy le 23 Avr - 13:26 (2011)
Je rajoute que le texte doit-être entre "" pour qu'il soit reconnu, et que si vous voulez rentrer une variables elle ne doit pas être entre ""

Posté par Ku'rei le 23 Avr - 14:13 (2011)
Yop ! Bonne idée que de mettre tes notes ici. Je me suis mis à scripter il y a 4 mois environ, je me suis fait un 'petit' répertoire des fonctions de base de ruby (Sur ce site) puis j'ai appris le RGSS sur RPG créative (Ici), ils ont pas mal de tuto simpa sur les window, scene et sprite :D
(Cool ma vie) Mais je pense que tu devrais aller y faire un tour, ça pourrait t'apprendre deux trois trucs sur le ruby et le RGSS.
Bon courage !