Bienvenue visiteur !
|
Désactiver la neige
Statistiques
Liste des membres
Contact
Mentions légales
475 connectés actuellement
30912668 visiteurs depuis l'ouverture
2304 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
Pheno -
posté le 18/01/2016 à 14:35:02 (41 messages postés)
| | Domaine concerné: Code Logiciel utilisé: RPGMaker Salut tout le monde,
J'aime beaucoup passer du temps à la création (beaucoup plus qu'à jouer) et comme je ne m'y connais pas du tout en codage, je me demandais quel était le meilleur moyen d'apprendre à coder en Ruby.
Parce que le jeu est bien foutu, mais je n'ai JAMAIS réussi à faire fonctionner un script sans avoir d'erreur, et évidement je n'ai jamais su comment les corriger, les erreurs.
Donc je me suis dit qu'au lieu de chercher à corriger l'erreur sans savoir pourquoi elle était là ni comment elle a été corrigée, j'allais apprendre entièrement à coder. Comme ça je pourrai enfin utiliser des scripts, corriger les erreurs (et les comprendre) et encore mieux, créer des scripts moi même. (le système de combat par défaut et les animations d'attaque m'ont toujours piqué les yeux...).
Donc, ma demande : Où puis-je apprendre au mieux le Ruby (si vous avez un super site, ou même un livre du genre "Le Ruby pour les nuls", je prends.
Merci.
|
arttroy -
posté le 18/01/2016 à 16:25:48 (2394 messages postés)
| Just working | Pour apprendre à coder faut déjà savoir une chose, à chaque rpg maker son langage :
RGSS1 pour xp
RGSS2 pour vx
RGSS3 pour ace
et javascript ('fin un truc du genre je me suis pas trop penché dessus) pour mv
En premier le plus simple c'est d'observer comment sont fichus les scripts de base, si tu ne les comprends pas ça ne sert à rien de vouloir faire plus compliqué ^^.
En ce qui me concerne je suis surtout familier du RGSS3 mais à force de bidouiller je comprend aussi ceux de xp et même ceux de MV alors qu'à l'origine j'ai aucune connaissance en informatique...
Premier truc très important si tu ne gères pas bien l'anglais ben faut t'y mettre ^^. La plupart des scripts sont codés en anglais donc autant s'adapter ^^.
Deuxième chose, les lignes en vert dans les scripts sont des commentaires qui t'expliquent le fonctionnement des def ou à quoi servent les class.
Exemple :
1
2
3
4
5
6
| #==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
# This class handles temporary data that is not included with save data.
# The instance of this class is referenced by $game_temp.
#============================================================================== |
Comme tu peux le voir, chaque ligne commence par un #, en mettant ce caractère au début d'une ligne elle devient un commentaire (couleur verte).
Ce truc tu vas l'utiliser TOUT le temps... C'est mieux de placer un # devant une ligne que de l'effacer si on veux tester quelque chose
Par exemple tu verras que les script sont souvent construits comme ça :
class
def initialize
end
def update
end
def terminate
end
end
ou dans le cas des Window_x
class Window_x
def start (ou initialize)
end
def refresh
end
def terminate
end
end
Ça c'est la base de toutes les class, les def qui suivent celles là servent à gérer le fonctionnement des divers éléments de la class.
Si tu regarde le nom des script dans la fenêtre de gauche tu verras ça :
Sprite_Base
Window_Base
Scene_Base
En étudiant ces class là tu verras que toutes les def qu'elles contiennent se retrouvent dans toutes les autres class de même catégorie.
Une fois que tu auras compris le fonctionnement de tout ça, tu devrais déjà être en mesure de t'attaquer à ça...
http://ruby-doc.org/
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
Pheno -
posté le 18/01/2016 à 17:14:24 (41 messages postés)
| | Merci bien pour ton explication bien détaillée.
J'avais déjà vu la base de la base, avec les def ... et end.
J'avais commencé à voir les nombres, aussi.
Merci pour le lien aussi.
Par contre j'ai absolument pas compris le RGSS, c'est encore un langage différent ? parce que je pensais que c'était simplement du "Ruby", qu'on tapait un code en langage Ruby et hop, ça roule... c'est quoi la différence ?
Le RGSS c'est un truc à ajouter au langage Ruby quand on fait un scrip sur RGPMaker ?
|
tonyryu -
posté le 18/01/2016 à 17:17:54 (74 messages postés)
| | attention!! petit correctif, le RGSS n'est pas un langage, met un framework proposant de nombreuse classe Ruby (écrite en c++ embeded Ruby). Les scripts des projets RpgMaker utilisent les fonctions fournies par la RGSS. La version s'étant amélioré au fur et à mesure des rpgmaker
Du rpg maker XP au VxAce, le langage utilisé est le Ruby.
tu peux éventuellement faire un tour ici, mes tutos sont pas de premières jeunesses, mais peuvent être utile : http://www.tonyryudev.com/joomla3/index.php/menu-mes-developpements/menu-cours-ruby-rgss
|
Pheno -
posté le 18/01/2016 à 17:38:46 (41 messages postés)
| |
J'ai toujours rien compris avec le RGSS. Il sert à quoi très exactement ? Pourquoi on a besoin de parler de RGSS quand on parle de Ruby ?
Il apporte quoi au Ruby ?
|
tonyryu -
posté le 18/01/2016 à 17:50:34 (74 messages postés)
| | Le ruby est un langage de programmation, mais dans le cadre de RPGmaker, le langage de programmation standard ne permet pasde gérer la création d'une fenêtre Windows, d'afficher un pixel, des sprites, de jouer une musique, etc...
Donc, il a fallu créer une bibliothèque permettant de créer un système de jeu avec script Ruby : Ruby Game Scripting System (RGSS). Apportant plein de classe permettant de réaliser les actions décrites précédemment, mais que le langage Ruby seul ne permet pas.
Par exemple les classes Sprite, Window sont des classes proposées par le RGSS.
|
Pheno -
posté le 18/01/2016 à 17:53:09 (41 messages postés)
| | Aaaah ok !
Donc, si je comprends tout à fait bien, il faut apporter quelques changements au langage Ruby de base pour que le script fonctionne sur RGPMaker, et ces changements c'est le RGSS ?
C'est bien ça ? J'ai compris ou toujours pas ?
Et si c'est ça, c'est quel genre de changement / modification, dans un script ?
Tu as un exemple ?
Je lirai tes tuto aussi, je viens de voir plus bas que tu as un tuto spécialement sur le RGSS, que j'ai pas vu tout de suite.
|
Cantarelle -
posté le 18/01/2016 à 18:09:31 (1530 messages postés)
| Makeuse tarée et Agent du FBI... | On va y aller point par point.
Ruby est un langage de programmation. C'est ce langage qui sert de base aux scripts des RPG Maker XP, VX et VX.ace.
(pour MV, c'est javascript, mais on s'en fout).
Les RGSS (1 pour XP, 2 pour VX et 3 pour VX.ace. Attention, les trois sont différents) ne sont que des bibliothèques (libraries en anglais). Pour être plus précis, il s'agit de classes et de méthodes contenus dans un paquet et qui te facilite le boulot en évitant de réécrire à chaque fois des parties que tu as besoin.
Il n'y a pas qu'avec RM que tu trouves cette notion de bibliothèque. Tu en as dans presque tous les langages (commençant par le C où tu as des bibliothèques comme NCurses, Python avec PyGame, Ruby avec le RGSS, mais aussi Gosu etc... bref, il y en a des centaines de bibliothèques dans chaque langage).
Pour donner un exemple un peu plus concret, quand tu écris :
print("helloworld"), tu fais appel à la bibliothèque standard de Ruby (ou ce que nous, on appelle verbeusement Ruby tout court). Ça t'écrit l'argument passé en paramètre (ici, helloworld) dans une boite de commande (ou directement dans une autre fenêtre sur RM, pour des raisons que je ne vais pas aborder).
Ça fonctionne avec et en dehors de RM.
Par contre, si tu écris :
print($actor_data[0].name) dans une boite de commande, il y a une erreur. $actor_data[0].name est dans RPG Maker uniquement.
Grossièrement, ça te fait :
$_actor_data[0] te renvoie l'acteur 0 (bref, ton premier héros de ta base de donnée)
Si tu regardes dans RM, tu as une classe qui s'appelle Actor.
Dans Ruby, tu n'as pas de classe qui s'appelle Actor. C'est à toi de la créer.
J'espère avoir été plus claire.
PS : bon, tony a répondu en même temps que moi...
|
Makeuse à la crosse de street-hockey. Livestream. |
Pheno -
posté le 18/01/2016 à 18:15:15 (41 messages postés)
| | Oui, c'est de plus en plus clair pour moi, en tout cas.
Quand on crée un nouveau script (disons une fenêtre différente de la bleue qu'on connait) il faut utiliser le script déjà dans RPGMaker (window) et on modifie avec du Ruby ?
|
Index du forum > Entraide > [RESOLU] [RPGMaker] Apprendre le Ruby
|
|
|