Pokémon Script Project Forum Index

Manuel | Search
 Information des admins 
Si vous désirez parler de PSP ou obtenir du soutient là dessus, merci d'aller faire un tour sur https://pokemonworkshop.com/forum/index.php Imbécile heureux

Questions Ruby
Goto page: <  1, 2, 3, 4
 
Post new topic   Reply to topic    Pokémon Script Project Forum Index -> Game Making -> Ressources techniques -> Scripts
Previous topic :: Next topic   
Author Message
Xyrram
Membre


Joined: 24 Jun 2012
Posts: 464
Dresseur confirmé
Localisation: A Unys
Masculin

PostPosted: Sat 8 Dec - 22:45 (2012)    Post subject: Questions Ruby

Mais alors quant un script manque d'arguments cella veut dire qu'il lui faut:
Def...
Script
Return
End
Back to top
Publicité






PostPosted: Sat 8 Dec - 22:45 (2012)    Post subject: Publicité

PublicitéSupprimer les publicités ?
Back to top
Ze_Jirachi
Membre


Joined: 16 Mar 2013
Posts: 179
Membre
Localisation: Chez moi

PostPosted: Thu 11 Apr - 15:24 (2013)    Post subject: Questions Ruby

Bonjour Yuri! Je postes ici car je n'ai pas vraiment compris le principe pour réaliser une scène... J'ai essayé de voir le tuto sur le-site-dont-je-ne-citerai-pas-le-nom mais j'ai rien compris. Pourrais-tu m'expliquer?
Back to top
Ram'
Membre


Joined: 15 Jul 2008
Posts: 4,093
Nerfs qui lâchent
Localisation: Zone 51

PostPosted: Sat 13 Apr - 17:04 (2013)    Post subject: Questions Ruby

J'ai divisé les parties que j'ai réussi à isoler dans une section spéciale Yuri.
Par contre il y a certaines choses auxquelles j'ai préféré ne pas toucher ne sachant pas vraiment ce qui allait avec quel autre message.
Back to top
Zohran
Support Technique
Support Technique


Joined: 14 May 2011
Posts: 906
Localisation: France
Masculin

PostPosted: Mon 15 Apr - 14:39 (2013)    Post subject: Questions Ruby

Merci par avance pour ce topique, je souhaiterais créer pour un projet une base de données programmées de A à Z. Voilà ma question:

Par exemple (ce ne sera pas le but de ma programmation), si je souhaitais créer en script une classe qui donne tout ce qui constitue ce qu'est un pokémon, comment dois-je procéder? (créer attribut niveau, pv... etc)

Ensuite comment utiliser ses attributs dans des interfaces, en fait je souhaite apprendre les choses les plus fondamentales et aussi les plus dures du ruby...

Autre question: A quoi sert un module, je suis pas sur d'avoir compris...
Back to top
Nuri Yuri
Team SDK


Joined: 15 Oct 2008
Posts: 6,383
~Entity~
Localisation: Nancy
Non renseigné (Visible...)
ID Steam: Nuri_Yuri

PostPosted: Sat 20 Apr - 08:55 (2013)    Post subject: Questions Ruby

T'as deux choix, coder une classe de A à Z, ce qui te permettra de créer des méthodes spécifique sans avoir à "patcher" cette classe (réécrire dedans en gros) ou passer la classe Struct.
Dans les deux cas les effets sont les même sauf qu'avec la classe Struct, tu n'as pas à mettre les attributs et à coder la fonction d'initialisation, en contre partie toute les variables non précisé lors de la création de l'objet seront mises à nil. (Peut être gênant).
Voici les prototypes :
Avec Struct
Code:
Pokemon=Struct.new(:base_hp,:atk,:def,...) #J'ai mis ... pour ne pas tout écrire il faudra les remplacer par toute les variables.
#<...>
#Utilisation de la struct.
@Pokemon1=Pokemon.new(5,1,3,...)
@Pokemon1.base_hp=6
print(@Pokemon1.atk)
data=Marshal.dump(@Pokemon1) #Retourne un string correspondant au data sauvé.

Sans Struct (mais beaucoup plus maitrisé)
Code:
class Pokemon
  attr_accessor :name
  def initialize(*args)
    @base_hp=args[0].to_i.abs #Là je maîtrise la valeur car je la force à être positive
    @atk=args[1]
    #<...>
    @name=args[n]
  end
  def base_hp()
    return @base_hp=1 if(base_hp<=0)
    return @base_hp
  end
  def base_hp=(value)
    return if(value<=0)
    @base_hp=value
  end
  #<...>
end
#<...>
@Pokemon1=Pokemon.new(5,1,3,...)
@Pokemon1.base_hp=-6
print(@Pokemon1.base_hp) #Affiche 5 car -6 <= 0
data=Marshal.dump(@Pokemon1) #Retourne un string correspondant au data sauvé.

Après pour la base de données à toi de t'organiser, tu peux faire comme PSP 1.0 où l'on enregistre tous les datas dans des fichiers séparés ou alors faire comme PSP 0.7 en enregistrant tout dans un seul fichier mais en utilisant des classes Pokemon (ou Data_Pokemon selon le nom que tu donnes).
C'est là le but des classes, avoir des instances différentes pour travailler et maitriser le data.

Pour ce qui est des modules, c'est légèrement différent.
Ils servent à fournir des méthodes ou un travail complet mais ne génèrent pas d'instance à leur nom car ce sont eux même des instances au détail près, il faut expliciter les méthodes que l'on veut rendre utilisable sans include.
Les modules peuvent être vu comme des conteneurs, sur PSP c'est dans le module POKEMON_S qu'il y a la classe Pokemon et tout ce qui s'en rapproche. Sur PSP v1.0 on utilise des modules pour les scènes qui n'ont pas besoins d'instances comme Scène_Title. Elle a besoins d'être lancé qu'une fois donc on la met dans un module, par contre on doit gérer le vidage des variables car les modules sont des instances sur la durée et tant qu'on ne les efface pas explicitement ils ne seront pas libérés par le GC.
Code:
module Scene_Title
  module_function #J'explicite que tout ce qui suit sera des méthodes utilisable sans include : Scene_Title.main()
  def new() return self end
  def main()
    print("Vous avez lancé Scene_Title")
    $scene=Scene_Map.new
  end
end

Je te déconseille pour le moment d'utiliser cette manière de coder avec les modules car il faut un peu d'expérience et savoir ce que contiennent réellement des variables.
Quand tu sauras lancer Scene_Title de cette manière $scene=variable.new, tu pourras probablement commencer à coder des modules destinés uniquement au travail et non au stockage de méthode ou constante.
Back to top
Facebook Twitter
Zohran
Support Technique
Support Technique


Joined: 14 May 2011
Posts: 906
Localisation: France
Masculin

PostPosted: Sat 20 Apr - 21:58 (2013)    Post subject: Questions Ruby

Je te remercie beaucoup d'avoir pris le temps de me répondre, tu commences à me permettre de m'améliorer considérablement en script, je vais garder tes explications sous la main. Je reposterais d'autres questions plus tard dès que j'aurais bien assimilé cela. Merci Imbécile heureux

Ca fait plaisir d'avoir un bon scripteur qui aide des apprentis tel que moi, parce que à part RPG Maker, je n'avais jamais programmé de ma vie, je ne savais pas coder, j'ai appris ce que je sais faire par moi même en analysant des scripts et en lisant quelques tuto de Tonyryu, mais malheureusement, les tutos ne sont pas assez nombreux pour le ruby sur RPG Maker pour me permettre d'aller beaucoup plus loin en script. Donc encore MERCI Imbécile heureux

QUESTION: Dans le script sans structure, tu as mis un attr_accessor: name, je voudrais savoir pourquoi... serait-ce-parce que en fait les pts de vie, attaque et autre existe déjà, tu as donc rajouté cet objet inexistant, cest pour ça?
2ème quesion: Où je peux voir les objets existants tels que les PV, dans l'aide RGSS de rpg maker? Dans les class RPG? Ou les class Game existantes?

PS: Coder une classe nouvelle sans structure me parait plus propre et plus clair non? Personnellement, je pense que coder une classe neuve sera moins fouillie...

EDIT: Autre question-> la différence entre attr_reader et attr_accessor ?
Back to top
Display posts from previous:   
Post new topic   Reply to topic    Pokémon Script Project Forum Index -> Game Making -> Ressources techniques -> Scripts All times are GMT + 1 Hour
Goto page: <  1, 2, 3, 4
Page 4 of 4

 
Jump to:  

Index | Free forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Thème par Thomas et l'équipe de la refonte PSP 2012 (version 1.0)