La Forge des Rêves
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.



 
AccueilAccueil  PortailPortail  Dernières imagesDernières images  RechercherRechercher  S'enregistrerS'enregistrer  ConnexionConnexion  
-29%
Le deal à ne pas rater :
PC portable – MEDION 15,6″ FHD Intel i7 – 16 Go / 512Go (CDAV : ...
499.99 € 699.99 €
Voir le deal

 

 [Ruby] Première aborde !

Aller en bas 
5 participants
AuteurMessage
kill00man
> Grand artiste
> Grand artiste
kill00man


Masculin
Nombre de messages : 285
Age : 43
Localisation : Derrière-toi, prêt a t'assassiner !
Avez vous RPGMXP ? : On dit RMXP et oui, biensûr que je l'ai :p
Quels sont vos projets ? : The Strom Of Chrono
Date d'inscription : 03/05/2007

Fiche Créateur
Points de Créativité:
[Ruby] Première aborde ! Left_bar_bleue0/50[Ruby] Première aborde ! Empty_bar_bleue  (0/50)
Commentaires: Touche a tout, absolument tout!!(et en plus bien XD)

[Ruby] Première aborde ! Empty
MessageSujet: [Ruby] Première aborde !   [Ruby] Première aborde ! Icon_minitimeMer 30 Mai - 8:47

Bonjour tout le monde!
Je vais vous proposez un tuto sur les point s qui impressione sur les scripts et qui vous paresse incompréhensible, pour essayer de vous faire comprendre les principalles fonctions!

Introduction
Le RGSS est un dérivé du Ruby, langue de programmation peut utiliser orienté Objet ( pas besoin de savoir la DEFINITION).
Si vous voulez créé des scripts, ne commencez pas le Ruby(car c'est le RGSS que nous voulons), cela vous paraitra simple mais vous aurez l'impression de ne rien apprendre ( du moins rien qui vous servira dans rmxp, fin bon sa sert quand même ^^ )!


1/Définitions


1.1/Les "class"

Déjà vous vous dites sa commence mal il me parle d'un truc avec des nom en anglais ou l'on comprend pas a quoi sa sert --'

Définition:
Définit une classe. Des classes se composent de propriétés, exprimé comme des variables d'exemple, et des méthodes pour manipuler les données dans la classe. Les classes doivent être organisées autour d'une certaine structure logique. Dans RMXP, ceci pourrait être un menu, avec les fonctions spéciales requises pour un système d'affichage des caractères, ou quoi que ce soit. La notation "<" indique la transmission d'une classe de parent. Si vous héritez de la classe B de la classe A, la classe B aura toutes les propriétés et méthodes de la classe A, en plus de tous les nouvelles que vous définissez pour la classe B.

C'est plutot compliqué je trouve donc je traduit a l'arrache^^
Les classes sont composés de (donnés)variables et des méthodes pour utiliser les données de la classe.Les classes doivent etre créé logiquement, ne pas mettre la fin au début^^!
L'héritage consiste a faire "héritez une classe des données d'un autre grâce a la fonction <
Exemple:class Window_Gold<Window_Base

PS: Une class = un end en fin de script ^^

1.2/Les "def"

Là vous vous dites en fait c'est simple! c'est bon je vais pouvoir faire des scripts! et bein non!

Définition:"Def" définit une méthode. Cette méthode continue jusqu'au rapport "End".

Sa fait cour hein^^
Def défini(je sais c'est un plaionasme^^)quelquechose,une "précision" de la classe dans laquelle il est! Par exemple la def initialize indique comment doit être créé la classe; def refresh indique toutes les variables, tout ce qui doit être créé/afficher DANS la classe!

PS:Commes les class, a chaque def correspond un end

1.3/Mise en pratique!

Very Happy Vous allez comprendre unn peu plus comment fonctionne une window, ce qui vous permettra de mieux comprendre ce que j'ai expliquer en haut!
Code:
#==============================================================================
# ■ Window_Gold
#------------------------------------------------------------------------------
#  ゴールドを表示するウィンドウです。
#==============================================================================

class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    refresh
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    cx = contents.text_size($data_system.words.gold).width
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
  end
end
Déjà, si vous avez bien suivi, vous devrez comprendre a peu pres la forme d'un script!
Je vais expliquer rapidement c'est fenetre qui permet d'afficher l'or!
Code:
  def initialize #Initialise la fenetre
    super(0, 0, 160, 64) #Informations sur la fenetre (super(x(emplacement verticale par rapport au coin supérieur gauche),y(pareille mais pour l'horizontale),longueur,hauteur)
    self.contents = Bitmap.new(width - 32, height - 32) #tout simplement obligatoir lol
    self.contents.font.name = $fontface #j'écris avec que écriture?
    self.contents.font.size = $fontsize #et a quelle taille?
    refresh
  end
Donc la commande super pour l'emplacement et la taille
le reste pour des informations optionnels mais obligatoires selon ce que vous voulez faire!
(plus j'ai parlez que def initialize commander l'opacity? oui, il existe la commande self.opacity et self.back_opacity pour l'opacuité mais bon au début vous ne vous en servirai tres tres tres peu!)
Code:
  def refresh #explications de refresh
    self.contents.clear #... obligatoire
    cx = contents.text_size($data_system.words.gold).width#ceci empeche de dépasser de la taille de la window avec l'écriture^^
    self.contents.font.color = normal_color#la couleur d'écriture
    self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)#sa affiche l'or, je ne vais âs vous epliquer ^^ sa marche pareille que super mais en plus compliquer ^^
    self.contents.font.color = system_color #changement de la couleur!
    self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)# affiche le nom de l'or a coté de l'or ^^
  end
Alors vous comprenez a comprendre maintenant?
Il y a peu de chose a expliquer sur des petits refresh simple comme celui-ci^^

1.3/La longueur du script

Alors là, la plupart de gens dès qu'ils voient un script long se dise m*rde ja fais quoi avec sa moi?
Ne vous inquietez pas! un script long ne veut pas dire un script compliqez lol!
Au passage, je dis que on peut fusionner tout les script ensemble pour gagner de la place a condition de les mettres dans le bon ordre ce qui peut tres bien faire un script de 20000 lignes XD
Par exemple, sur mon Système de combat personnalisé (Custom Battle System), simpelment faire se détacher les fenetres des perso sa prend 127 lignes!

1.4/Les "#"

# ne sert pas juste a mettre de la couleur (si si c'est vrai XD), # indique a RPG Maker XP que ce qui suit est un commentaire!
Un moyen efficace de mettre des commentaire et SEULEUMENT des commentaires sur beaucoup de ligne et de commencer par =begin et finir par =end
Exemple
Code:
#Salut
#je suis kill00man
#j'écris un tuto sur le RGSS
OU
Code:
=begin
Salut
Je suis kill00man
j'écris un tuto sur le RGSS
=end

1.5/C'est quoi ce binz"?

On ve rentrer dans tous les signes bizarres et les commande qu'on voit fréquemment dans les scripts!

@
défini une variable d'exemple pour une classe. Afin de lire et d'écrire une variable de ce type, vous aurez besoin de créer chaque méthode d'accès des variables ou d'utiliser l'attr_reader, l'attr_writer, ou le raccourci d'attr_accessor pour surcharger les opérateurs appropriés automatiquement.

Urg...ba lisez une bonne 100ene de fois si vous comprenez pas XD
Disons que c'est une variable qui n'est pas définitive quand on la démarre, elle change petit a petit...C'est plus compliquer que sa mais bon^^

$
Défini une variable global. Ces variables peuvent être consultées n'importe où dans le programme entier.

En faitune variable globale c'est une grosse variable (globale donc)qui n'est pas précise, elle se précise grâce aux éléments et aux conditions dans lesqelles elle est activé!

@@
Défini une variable de class. À la différence des variables d'exemple, ce type de variable est partagé entre chaque exemple de classe.

Une variable de class a l'avantage d'être utilisable par tout les "exemples" de classe.

DO
"Do" est généralement utilisé avec une "boucle", mais peut être utilisé avec n'importe quel autre rapport tel que "if".

On trouve des loop_DO qui veut dire "tu fais sa en boucle", donc do veut dire faire Faire pour les non anglophones^^ ce qui suit(si je ne me trompe pas) et se que va faire RMXP pour loop_DO c'est ce qu'il va faire en boucle par exemple(je crois)^^

Ensure
Ce mot-clé est employé pour s'assurer que quelque chose est fait. "Ensure" est placé à l’intérieur d’un bloc de begin/end.

C'est une commande de "vérification". Je sais pas si c'est bien obligatoire mais sa peut évtier de nombreux bugs, je sais personellement que je ne m'en sert pas mais si elle existe cette commande ya une raison^^

FOR
"For" signifie que le programme devra itinérer a travers un groupe d'objets et leur faire subir des opérations. Ces items peuvent être scalaires, des Array Index ou un groupement d'objets que vous définie vous-même.

FOR veut dire "pour" en gros ce qu'explique la définition c'est que si on écris [divise par 2] FOR [variable] (je sais pas s c'est possible aussi facilement mais là c'est un schéma^^) ba RMXP va diviser par 2 la contenance de la variable ;)

IF
Le mot-clé "if" est suivi d'une condition faite d’opérateurs de comparaison tels que le && de ==,||, et!. Si la condition est vraie, alors le scrîpt est exécutés. Autrement, il est sauté.

IF sa veut dire si... Par exemple si on rend égale la lettre a à 8 on peut faire: [Si] A [En dessous de] 9 [Alors] [Commandes en cas de vrai] [Sinon] [Faire autre chose], vous remarquerez que c'est comme les conditions des events comment j'ai présenté mais en RGSS sa ressemble a sa:
Code:
a=8
if a < 9:
print "A est compris entre 0 et 9"
else
print "A est plus grand que 9"
end

ELSE
La commande else est positionnés après une commande IF. Else veut dire Sinon donc par logique else indique a RMXP que faire si If est faux.
Exemple plus haut!

ELSIF
La commande elsif suit une commande if, elle indique une autre possibilité, ca veut dire (si on traduisait (ESLE + IF)) sinon si, en programmation sa indique exactement la traduction si If [commande] :#: joue le rôle de alors)
elsif [/condition] #sinon, si autre commande

[Array Index]
Vous pouvez mentioner les membres de rangée en employant la syntaxe "[ ]". Vous pouvez également surcharger l'opérateur "[ ]" pour une classe si vous voulez que le comportement des mentions d'index de rangée soit unique pour cette classe.

Attr_Accessor
"Attr_Accessor" combine les effets des attributs d'"Attr_Reader" et d'"Attr_Writer". Si une variable d'exemple est de type courant qui est utilisé dans les méthodes pour le transfert et la comparaison, ceci vous permet d'assigner à et comparer avec ces variables d'exemple sans devoir explicitement écrire l'ensemble et obtenir des méthodes pour cette variable d'exemple.

Attr_Reader
Si une variable d'exemple de type courant a construit des les méthodes pour le transfert et la comparaison, Attr_Reader vous permet de comparer par rapport à cette variable d'exemple sans devoir explicitement écrire et obtenir des méthodes pour cette variable d'exemple.

Attr_writter
Si une variable d'exemple de type courant est construite avec les méthodes pour le transfert et la comparaison, ceci vous permet d'assigner aux variables cet exemple sans devoir explicitement écrire des méthodes réglées pour cette variable d'exemple. "Attr_writter" n'est pas typiquement employé souvent comparé à "Attr_Reader" et à "Attr_Accessor"

ET VOILA!
Vous voyez a présent que les scripts c'est pas bien méchant!
J'ai pris les points qui bloque les personnes sur les scripts et qui les font hésitez!
Un petit excercie a présent c'est essayer de créé une fenetre vide, se serait déjà pas mal pour un début ^^
Voila!!
++

PS:définitions de base par : camille
PPS: j'espère que vous serez plus implements heureux comme sa^^


Dernière édition par le Dim 3 Juin - 3:18, édité 2 fois
Revenir en haut Aller en bas
Luck
> Administrateur
> Administrateur
Luck


Masculin
Nombre de messages : 507
Age : 31
Localisation : 35
Avez vous RPGMXP ? : Oui
Quels sont vos projets ? : Nightmares of Apocalypsia - Mario Kart XP
Date d'inscription : 17/11/2006

Fiche Créateur
Points de Créativité:
[Ruby] Première aborde ! Left_bar_bleue50/50[Ruby] Première aborde ! Empty_bar_bleue  (50/50)
Commentaires: Administrateur du forum.

[Ruby] Première aborde ! Empty
MessageSujet: Re: [Ruby] Première aborde !   [Ruby] Première aborde ! Icon_minitimeMer 30 Mai - 9:08

Merci kill00man ... J'attend la suite avec impatience ... Je te remercie beaucoup, je vais me lancer dans le ruby Very Happy
Revenir en haut Aller en bas
Koss
> Administrateur
> Administrateur
Koss


Masculin
Nombre de messages : 404
Age : 31
Quels sont vos projets ? : Glandage total...
Date d'inscription : 18/04/2007

Fiche Créateur
Points de Créativité:
[Ruby] Première aborde ! Left_bar_bleue0/50[Ruby] Première aborde ! Empty_bar_bleue  (0/50)
Commentaires: -

[Ruby] Première aborde ! Empty
MessageSujet: Re: [Ruby] Première aborde !   [Ruby] Première aborde ! Icon_minitimeMer 30 Mai - 9:48

Je suis trop feignant pour me lancer dedans, mais c'est un bon tuto...
Un petit PA ou deux seraient appréciables je pense pour son travail, hein Luck?
(pourquoi pas trois?????
- l'orthographe.....)
Revenir en haut Aller en bas
Dark.D
> Créateur
> Créateur
Dark.D


Masculin
Nombre de messages : 354
Age : 32
Avez vous RPGMXP ? : Ouaip
Quels sont vos projets ? : Aucun, je m'éclate juste un peu ^^
Date d'inscription : 18/11/2006

Fiche Créateur
Points de Créativité:
[Ruby] Première aborde ! Left_bar_bleue0/50[Ruby] Première aborde ! Empty_bar_bleue  (0/50)
Commentaires: -

[Ruby] Première aborde ! Empty
MessageSujet: Re: [Ruby] Première aborde !   [Ruby] Première aborde ! Icon_minitimeMer 30 Mai - 10:07

Moi comme je ne vais plus très souvent sur RPG Maker XP pour le moment à cause du PC qui bug, je ne l'apprend pas pour le moment, mais pourquoi par la suite ...
Revenir en haut Aller en bas
http://nintendo-gp.forum2jeux.com
kill00man
> Grand artiste
> Grand artiste
kill00man


Masculin
Nombre de messages : 285
Age : 43
Localisation : Derrière-toi, prêt a t'assassiner !
Avez vous RPGMXP ? : On dit RMXP et oui, biensûr que je l'ai :p
Quels sont vos projets ? : The Strom Of Chrono
Date d'inscription : 03/05/2007

Fiche Créateur
Points de Créativité:
[Ruby] Première aborde ! Left_bar_bleue0/50[Ruby] Première aborde ! Empty_bar_bleue  (0/50)
Commentaires: Touche a tout, absolument tout!!(et en plus bien XD)

[Ruby] Première aborde ! Empty
MessageSujet: Re: [Ruby] Première aborde !   [Ruby] Première aborde ! Icon_minitimeMer 30 Mai - 10:50

Bon j'entamme la window avec beaucoup plus d'explications car la c'est vraiment précaire ce que j'ai fais lol^^
Bon a bientôt dans le prochain tuto XD
++
Revenir en haut Aller en bas
WhiteShadow
> Barbouilleur
> Barbouilleur
WhiteShadow


Masculin
Nombre de messages : 14
Age : 31
Localisation : Trés bonne question...
Avez vous RPGMXP ? : Ouais
Quels sont vos projets ? : La Dona
Date d'inscription : 13/05/2007

Fiche Créateur
Points de Créativité:
[Ruby] Première aborde ! Left_bar_bleue0/50[Ruby] Première aborde ! Empty_bar_bleue  (0/50)
Commentaires: -

[Ruby] Première aborde ! Empty
MessageSujet: Re: [Ruby] Première aborde !   [Ruby] Première aborde ! Icon_minitimeMer 30 Mai - 12:19

Super tuto !Bravo à toi,c'est clair et bien expliqué!Je pense que je vais moi aussi me lancer dans le ruby.
Revenir en haut Aller en bas
kill00man
> Grand artiste
> Grand artiste
kill00man


Masculin
Nombre de messages : 285
Age : 43
Localisation : Derrière-toi, prêt a t'assassiner !
Avez vous RPGMXP ? : On dit RMXP et oui, biensûr que je l'ai :p
Quels sont vos projets ? : The Strom Of Chrono
Date d'inscription : 03/05/2007

Fiche Créateur
Points de Créativité:
[Ruby] Première aborde ! Left_bar_bleue0/50[Ruby] Première aborde ! Empty_bar_bleue  (0/50)
Commentaires: Touche a tout, absolument tout!!(et en plus bien XD)

[Ruby] Première aborde ! Empty
MessageSujet: Re: [Ruby] Première aborde !   [Ruby] Première aborde ! Icon_minitimeMer 30 Mai - 12:34

Et voila la suite est là!
++
Revenir en haut Aller en bas
kill00man
> Grand artiste
> Grand artiste
kill00man


Masculin
Nombre de messages : 285
Age : 43
Localisation : Derrière-toi, prêt a t'assassiner !
Avez vous RPGMXP ? : On dit RMXP et oui, biensûr que je l'ai :p
Quels sont vos projets ? : The Strom Of Chrono
Date d'inscription : 03/05/2007

Fiche Créateur
Points de Créativité:
[Ruby] Première aborde ! Left_bar_bleue0/50[Ruby] Première aborde ! Empty_bar_bleue  (0/50)
Commentaires: Touche a tout, absolument tout!!(et en plus bien XD)

[Ruby] Première aborde ! Empty
MessageSujet: Re: [Ruby] Première aborde !   [Ruby] Première aborde ! Icon_minitimeSam 2 Juin - 15:17

Voila!
J'insiste TOUT LE MONDE a relire ce tuto car j'ai corrigé(je crois) toutes mes fautes^^(merci rpg crea[bidule///]ive)
Donc, d'accrod c'est beaucoup plus compliquer mais faire plus simple en y pensant c'est dur lol
++
Revenir en haut Aller en bas
Contenu sponsorisé





[Ruby] Première aborde ! Empty
MessageSujet: Re: [Ruby] Première aborde !   [Ruby] Première aborde ! Icon_minitime

Revenir en haut Aller en bas
 
[Ruby] Première aborde !
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Ruby] 2/La Window !
» [Ruby] Changer la police
» [Ruby] Les bases du RGSS

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
La Forge des Rêves :: > Salle d'apprentissage :: Bibliothèque-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser