Sujet n°11422
Posté par Nosky le 30 Avr - 13:03 (2012)
Titre : Scriptage
Bonjour,
J'ai réalisé que sans scripts, les jeux fait avec RPG Maker sont assez "basique".
Ma demande(même si je pense que celle-là n'aboutira pas) est que quelqu'un
de gentil sachant scripter, ben justement m'apprenne à scripter !
(Savoir scripter sert aussi à corriger les bugs seuls et à pouvoir aider les
autres)
Moi, ayant comme réputation "flemmard", veut se mettre au travail !


Merci d'avance !


PS : Je sais qu'il y a des sujets qui ont été poster pour apprendre à scripter
mais personnellement, je comprends mal, donc si quelqu'un pourraient me
l'apprendre en individualité.

Posté par Maxime le 30 Avr - 13:55 (2012)
Cherche sur google, il y a beaucoup de sites qui peuvent t'apprendre le ruby. Clin d'œil foireux
Moi personellement je suis sur ce site : http://rpgcreative.net/programmation/

Posté par Nosky le 30 Avr - 13:58 (2012)
Oui, en fait j'ai déja essayé, mais je veux dire, quand c'est quelqu'un qui t'explique,c'est beaucoup plus facile a comprendre et dès qu'il y a un truc que l'on ne comprend
pas on peut demander !
Toi, ça fait longtemps que t'apprends, si oui, tu pourrais m'y dire, toi Clin d'œil foireux

Posté par Maxime le 30 Avr - 14:11 (2012)
Excuse moi mais je ne peux pas car j'ai autre chose à faire comme apprendre et m'occuper de PSP5G...
Désoler.

Posté par Nosky le 30 Avr - 14:12 (2012)
Oui, mais en m'y apprenant ça te ferais réviser et revoir ! 42
Non, j'rigole, ok, c'est pas grave !

Posté par Laito' le 30 Avr - 14:53 (2012)
Bah, si tu comprends pas avec ça, on peut pas t'aider. Les scripteurs sont très souvent occupés donc c'est pas toi qui sera la priorité =/.

Posté par Nosky le 30 Avr - 16:01 (2012)
Ben oui, mais quand on y pense bien, si je sais pas scripter, je vais les embêter à chaque scripts, 
alors que si ils m'apprennent, ils m'apprennent plus qu'une fois et c'est bon !

Posté par Nuri Yuri le 30 Avr - 18:28 (2012)
Sais tu faire des algorithmes ?
Si t'as une base déjà dessus tu pourras peut être comprendre plus rapidement certaines choses en programmation.
Sinon je pourrait pas personnellement t'apprendre à scripter mais tu peux quand même poser des question, si j'ai le temps j'y répondrais.

Posté par Nosky le 30 Avr - 18:52 (2012)
Ben si tu m'expliques ce que t'entends par "algorithmes".
Non, en fait je veux apprendre à scripter non seulement pour mon projet,
mais aussi parce que je compte en faire mon métier donc bon.

Posté par Nuri Yuri le 30 Avr - 20:21 (2012)
Si tu ne sais pas ce qu'est un algorithme t'es mal barré :S
Les profs t'ont déjà parler d'algobox ?
Renseigne toi un peu dessus. Pour le métier je te conseil d'apprendre des langages plus "rependus" et plus utilisés comme Java et C++, apprendre l'Ada peut aussi être utile vu que c'est un langage simple mais qui demande une certaine rigueur.

Posté par Nosky le 30 Avr - 20:49 (2012)
Ben de 1 : Pour l'instant je suis qu'en 3e (bientot en 2nd) donc on a pas commencé à apprendre
Et de 2 : J'vais essayer d'apprendre le max de languages possible, je compte faire un Bac+5 (ingénieur)
(Comme quoi je suis pas tant un flemmard que ça)

Posté par Brendan75 le 1 Mai - 08:08 (2012)
Le mieux, c'est d'apprendre seul à scripter, c'est plus simple car trouver un scripteur pour t'apprendre risque de s'avérer impossible et ça te permettra d'être plus "débrouillard". Apprends à te servir de Ruby/RGSS et fais des tests, si tu as vraiment besoin d'aide sur un point précis, tu peux toujours demander et normalement, on te répondra, mais je ne pense pas que tu trouves un tuteur, surtout sur PSP qui ne compte pas tant de scripteurs que ça.

Posté par Nosky le 1 Mai - 08:49 (2012)
Ben oui mais de partir à "zéro" c'est un peu chaud, et je vois pas en quoi avoir un "prof" rend plus difficile la chose, au contraire je dirais, mais j'aimerais apprendre à scripter le plus facilement et le plus rapidement possible, alors que tout seul, c'est long et (parfois) compliqué. Et justement ça peut être un bon point car il y aura un scripteur en plus sur PSP, et je ne pense pas en trouver un non plus mais bon, il faut toujours essayer !

Posté par Nuri Yuri le 1 Mai - 10:19 (2012)
Apprendre avec un prof c'est les robots qui font ça et encore dans quelques temps ils sauront apprendre seul si ce n'est pas déjà le cas.
Le problème est pas tant apprendre avec un scripteur, c'est trouver un scripteur qui veut bien tout t'apprendre et qui a le temps. Après le scripteur n'est pas un prof ni un tuteur il saura pas forcément tout apprendre et le scripteur ne sait pas non plus tout.

J'ai appris à scripter seul à l'époque de PSP 4G+ en modifiant certains systèmes, j'ai rencontré des problèmes par exemple dans le branchement conditionnel mais j'ai demandé à Sphinx de m'éclaircir là dessus ce qui m'a permis de mieux comprendre avec le temps j'ai fini par mieux connaitre le fonctionnement des scripts en apprenant par moi même tout en demande des petits éclaircissements. Apprendre seul n'est pas forcément long et compliquer si tu sais te débrouiller.

On va faire un script simple :
Code:

begin
  nombre=3
  chaine='Salut ! '
  reel=Math::PI
  saut_de_ligne="\n"
  #Affichage du nombre :
  print(nombre)
  #Affichage du nombre réel (float):
  print(reel)
  #Affichage de salut et trois fois salut :
  print(chaine,saut_de_ligne,chaine*nombre)
rescue ScriptError, StandardError
  #Affichage d'un éventuelle erreur
  print($!)
end

Alors expliquons légèrement ce script.
Nous définissons quatre variables locales (accessibles que dans cette partie de code normalement) : nombre, chaine, reel et saut_de_ligne; Ces variables s'écrivent en commençant par une minuscule ou un underscore (_).
La variable réelle contient un nombre flottant que j'ai récupéré dans la constante PI du module Math, j'aurais aussi pu mettre 3.14 mais comme cette constante existe déjà et quelle est plus précise autant l'utiliser.
Après avoir défini toute mes variables j'ai utilisé deux méthodes :
print et *
Print affiche du texte sur le console en ruby ou dans une fenêtre avec le RGSS, cette méthode peut prendre autant d'arguments que tu veux, elle les converti tous en string donc n'utilise pas la méthode to_s dans les arguments ça sert à rien.
La méthode * de la classe string permet de multiplier le string par le nombre entier positif inséré si tu met un réel seul la partie entière sera prise. Cette méthode en fonction des classe ne fait pas la même chose tu verras ce que ça donne si tu le fais avec des autre types de valeurs. Pour plus d'informations sur ces méthode tu peux aller sur http://ruby-doc.org/core fais gaffe cette documentation est pour le ruby 1.9.3 le RGSS utilise le ruby 1.8.1 ou 1.8.6 donc certaines classes et méthode n'existent pas.
Pour finir j'ai utilisé un mot clef qui me permet de gérer les erreurs :
rescue
Il s'utilise dans les blocs et permet de capturer une erreur quelconque sur PSP on l'utilise de la sorte dans le script Main :
Code:

begin
  #code
rescue Exception => e
  Gestionnaire_derreur.gerer(e)
end

Ça capture toute exception et appelle une méthode qui sait quoi faire de l'érreur, dans mon code j'ai juste affiché l'érreur qui en général est toujours stockée dans la variable globale $! (accessible partout).
Tu verra en faisant des essaie tous les blocs quand lesquels tu peux utiliser rescue.
Je te laisse là dessus pour le moment.

Posté par Nosky le 1 Mai - 11:29 (2012)
Bon je vais essayer de comprendre, mais qu'est-ce qu'un nombre flottant et un nombre réel ? Et PI, c'est quoi ?

Posté par Nuri Yuri le 1 Mai - 11:38 (2012)
Les nombres flotants et réel seron considérés comme étant la même chose.
Un nombre réel c'est PI, racine de 3 etc...
En ruby on peut différencier 2 et 2.0 qui sont pas la même chose, 2 est un fixnum alors que 2.0 est un réel en maths et float en ruby. 256**256 (ou 256^256) est un bignum donc un réel et celui-ci bien que entier est différent de 2 car il prend beaucoup plus de mémoire. PI est une constante qui contient 3.1415... Tu dois la connaitre normalement.

Ruby sait calculer de très grands nombres : 256**256 =
Valeur
32317006071311007300714876688669951960444102669715484032130345427524655138867890893197201411522913463688717960921898019494119559150490921095088152386448283120630877367300996091750197750389652106796057638384067568276792218642619756161838094338476170470581645852036305042887575891541065808607552399123930385521914333389668342420684974786564569494856176035326322058077805659331026192708460314150258592864177116725943603718461857357598351152301645904403697613233287231227125684710820209725157101726931323469678542580656697935045997268352998638215525166389437335543602135433229604645318478604952148193555853611059596230656

Essaie avec la calculatrice windows ça donne ça : 3,231700607131100730071487668867e+616, pas très précis hein ?
Ta calculatrice par contre de dira : Erreur OverFlow.
Bon on se dira que calculer de grands nombres n'est pas utile pour nous mais au moins on sait que ruby sait les calculer.

Posté par Nosky le 1 Mai - 20:56 (2012)
C'est quoi la différence entre un "fixnum" (nombre fixe, non ?) et un nombre réel ?

Posté par Nuki le 4 Mai - 12:36 (2012)
 
Citation:
 Renseigne toi un peu dessus. Pour le métier je te conseil d'apprendre des langages plus "rependus" et plus utilisés comme Java et C++, apprendre l'Ada peut aussi être utile vu que c'est un langage simple mais qui demande une certaine rigueur.
Non, définitivement non.
Au passage, ce script n'est pas une bonne approche car il évalue des concepts "trop lointains".
La programmation en ruby est comme un jeu de construction. 
tu peux me  rajouter: xavier-vdw@hotmail.fr je t'aiderai dans la mesure du possible

Posté par IamTheAdic le 4 Mai - 12:55 (2012)
PSP est assez complexe dans l'ensemble, pour connaître toute sa syntaxe tu vas avoir du mal. C'est pas en lisant un simple tutoriel que tu vas pouvoir faire des scripts pour ton jeu Pokémon.

Posté par Nuki le 4 Mai - 13:32 (2012)
Je ne pense pas vraiment qu'on puisse parler de syntaxe.
En plus le Ruby est un langage vraiment super facile (même si parfois il fait faire des bizareries)
Par contre je rejoins IamTheAdic sur le fait qu'appréhender une syntaxe est une approche insuffisante, il faut aussi comprendre la logique du langage dans lequel tu travail. 
En ruby, il faut donc comprendre la logique orienté objet (principalement orienté classe), donc concevoir son application sur 2 pôles : Premièrement : Designer (en gros tu élabores  le plan de ton application), 2emement tu appliques ce model à une implémentation stable.
Commencer par Ruby est une bonne chose, car contrairement à C++ il est plus ou moins logique dans son paradigme.

Posté par Nuri Yuri le 4 Mai - 16:03 (2012)
C'est une bonne chose dans certaines mesures car ruby est vraiment trop laxiste et donc nous donne de mauvaises habitudes quand on est pas rigoureux de base de plus je le trouve énormément éloigné de la machine et de ce qu'on peut faire avec.

Posté par Nuki le 4 Mai - 16:38 (2012)
Il donne toujours de moins bonnes habitudes que le C++ :p