Connexion automatique

Pas encore membre ? Inscrivez-vous ici !
Vous avez oublié votre mot de passe ? On vous aide ici

AccueilPage d'accueilFAQRechercherS'enregistrerConnexion

Sélecteur de thème :


Partagez | .
Compréhension d'une scene (au sens de RM)

Shamugan
Gladiateur

Gladiateur
avatar

Nombre de messages : 582
Capacités : débutant
Distinction : Shashamumugangan [Yama feat GJLP]
Date d'inscription : 05/07/2016

MessageSujet: Compréhension d'une scene (au sens de RM)   Lun 19 Juin 2017 - 18:08

Bonjour, j'aimerais des lumières avisées d'un scripteur pour comprendre un peu le fonctionnement de l'affichage d'une scene dans RM avec un exemple de ce qui se produit dans le jeu si possible.

En fait, je suis en train de me remettre à l'étude des scripts de base mais vraiment la base, en essayant de comprendre ce qui se produit dans le jeu en même temps.

Exemple: SceneManager.run -> DataManager.init (chargement des données en gros, ok, je comprend) -> check et setup si utilisation de midi, ok -> Assignement à @scene de Scene_Title, ok (je passe sur Scene_Battle, c'est pas ce qui m'intéresse là) -> puis lancement de la Scene du titre via le main

Jusqu'à là je comprend bien mais après je comprend pas comment sont structurés les scene.

En fait, je comprend pas bien comment s'agence les différent objets: Viewport, Windows, Tilemap, Sprite, Bitmap dans une scene typique et leur correspondance dans ce qu'on voit dans le jeu. Désolé si la question peut paraître idiote, voir brouillon mais je suis en train de me perdre dans ma lecture du script et j'aimerais bien un peu d'aide si possible.

En vous remerciant d'avance,

Sham


Dernière édition par Shamugan le Jeu 22 Juin 2017 - 20:49, édité 1 fois
 
dricc
Conseiller

Conseiller
avatar

Nombre de messages : 2723
Localisation : Lille
Capacités : confirmé
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

MessageSujet: Re: Compréhension d'une scene (au sens de RM)   Mar 20 Juin 2017 - 8:05

Ah oui mais tu m'as l'air d'avoir une approche procédurale , là .
Le Ruby est un language objet , il faut raisonner en terme d'objet , de methodes , d' attributs de propriétés , de constructeur .

Et dans rpgmaker , il faut surtout s'interesser aux scene_xxxx . Le jeu n'est qu'une succession de scene au fond . Commence par regarder les proproétés qui devraient etre au début , ce sont des variables en gros . Ensuite , va voir le "constructeur" , il s'appelet "init" , je crois en ruby (je ne sais plus) . C'est la methode qui va définir la scene .

Attention aux heritages aussi .

EDIT : oups , je m'étais un peu planté dans le vocabulaire . Prof tonyryu m'a rattrapé Smile


Dernière édition par dricc le Mar 20 Juin 2017 - 9:40, édité 1 fois
 
tonyryu
Garde du Trésor

Garde du Trésor
avatar
http://www.tonyryudev.com En ligne

Nombre de messages : 881
Age : 37
Localisation : Près de Nantes
Capacités : expert
Distinction : aucune
Date d'inscription : 27/05/2010

MessageSujet: Re: Compréhension d'une scene (au sens de RM)   Mar 20 Juin 2017 - 9:25

Comme le dit DRICC, il te faut absolument des bases de Programmation Orienté Objet, sinon, tu vas être très vite largué, quant on va parler méthodes, propriétés, classe (mère, fille), instance, héritage, constructeur, etc...

 
Shamugan
Gladiateur

Gladiateur
avatar

Nombre de messages : 582
Capacités : débutant
Distinction : Shashamumugangan [Yama feat GJLP]
Date d'inscription : 05/07/2016

MessageSujet: Re: Compréhension d'une scene (au sens de RM)   Mar 20 Juin 2017 - 14:22

Ça j'ai un peu en fait. J'ai compris aussi l'aspect "tout objet" de rubis qui m'a bien perturbé (crée une méthode comme on crée un objet pour l'appeler, ptain Oo, ça m'a perturbé complet mais maintenant ça va). J'avais fait un peu de C++ durant un stage pour étudier un modèle de dynamique des population et donc ça va à peu près (mis à part les différent types de polymorphismes ou autre notion de ce type qui m'a soulé parce il y avait parfois des mots différent désignant la même chose suivant les auteurs).

Ah, propriétés du coup? (mais en anglais, attribut? ou instance variables? ou c'est plus large et ça désigne tout ce qui appartient à la classe? Ptite mise au point du vocabulaire parce que je connais les éléments mais je suis par sur que j'ai les bonnes définitions)

J'ai pas beaucoup eu le temps d'étudier pendant, juste des bonnes bases, mais j'essaie justement de faire d'une pierre deux coup en réapprenant un peu tout ça avec les script de Ace (c'est plus motivant^^).

Sinon pour l'approche procédurale, c'est juste que j'essaie de suivre un des "chemin de données". J'ignore pas, par exemple que le constructeur de DataManager va lancer son propre truc de son côté, simplement, je le saute pour l'instant, le temps de comprendre l'autre partie (l'autre "chemin"^^). Parce que à moins je me goure complétement mais localement, si on fait abstraction des autres processus, c'est comme du procédurale.


Du coup, en fait, pour reposer ma question, ça serait quelles sont les objets qui constitue ou sont utilisé dans une scene?

J'ai vu, ou cru comprendre, que Viewport, c'est l'objet de base nécessaire, le fond. Mais la description de la classe dans l'aide "Used when displaying sprites on one portion of the screen" m'a perturbé, pourquoi seulement sur une partie de l'écran? -_-
Après il y a Windows qui sert pour les fenêtres (menu, écran de dialogues, etc.).
Et puis là je fais faire mon inculte des jeux en 2D parce au final, je crois que j'ai pas bien compris Bitmap, Sprite et Tilemap. Ils correspond à quoi?

Quand je regarde sur internet, je vois que Bitmap, c'est image en deux couleur (binaire ok x) ) mais j'ai l'impression que c'est pour tout type d'image dans Ace. Sprite, c'est un concept basique (d'après la définition) mais je comprend pas comment ça interagie avec Bitmap. Et pourquoi viewport n'est pas toujours nécessaire si c'est le fond -_-.

Enfin Tilemap, bon, c'est objet crée à partir de différents sprite... Bon, je crois que pour celui, ça va à peu près finalement (la nuit porte conseil )

Je suis plus ou moins jusque là où je loupe des trucs importants? (j'ai l'affreuse impression de me perdre à chaque que je me relis)


PS: Sinon, oui, c'est init, le constructeur^^
 
dricc
Conseiller

Conseiller
avatar

Nombre de messages : 2723
Localisation : Lille
Capacités : confirmé
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

MessageSujet: Re: Compréhension d'une scene (au sens de RM)   Mar 20 Juin 2017 - 15:10

C'est ruby Smile
bon alors , je te réponds en me basant sur le javascript , ça peut donc etre un peu différent (mais pas tant que ça)

Ouais , faut penser differement . Ne pas penser à une liste d'evenement qui s'enchaine mais conceptualiser plus : qu'est-ce qu'une scene ? De quoi ça se compose ? J'ai parlé de init mais en général , tu vas trouver une autre methode interessante : refresh .

Une propriété est une valeur rattachée à une classe . Pour la classe qui contient les actors , tu auras les caractéristiques du heros par exemple .
Une methode , c'est des actions qu'on peux faire sur une classe . Par exemple , tu trouveras une methode qui fait gagner de l'exp à un actor .
Les scenes n'ont pas de propriétés , il me semble .

Un sprite , c'est une image qui bouge . ça contient tout ce qui bouge en meme temps aussi comme la bulle au dessus .
Un bitmap , c'est juste une image . c'est donc un des composants d'un sprite .
Si tu regardes la classe sprite_character , tu trouveras le bout de code qui découpe un charset . Ce charset est un bitmap .

La notion de viewport n'existe pas dans le javascript . Il me semble que c'est juste un morceau de fenetre en réalité . c'est ce que tu vois rééllement .
 
Shamugan
Gladiateur

Gladiateur
avatar

Nombre de messages : 582
Capacités : débutant
Distinction : Shashamumugangan [Yama feat GJLP]
Date d'inscription : 05/07/2016

MessageSujet: Re: Compréhension d'une scene (au sens de RM)   Mar 20 Juin 2017 - 16:46

Dac' dac'^^

En fait pour les notions de base, ça va. Les méthodes, c'est ok. Les notions de public/privé aussi. Le principe du paradigme objet, je l'ai compris assez bien, séparés les objet pour qu'il y ait moins de problèmes et qu'on puisse travailler à un certain niveau du code sans avoir besoin forcément de comprendre tout. En tout cas, c'est comme ça que je l'avais appris.

Et je confirme les scenes n'ont pas d'attribut (ou de variables d'instance) même si je sais pas si ça recouvre tout ce qu'on entend par "propriétés" en français.


D'accord, ça devient un peu plus clair. Mais un objet tilemap est composé de plein de sprite, pourtant les tiles d'une map ne bouge pas. Les tiles et tilesets sont aussi "gérés" par la classe sprite avant qu'une map soit construite? Et plus généralement, tout ce qui une image doit "passer" par la classe sprite ou bien certaines font exceptions (parallax par exemple)?

Ouais mais pour viewport, c'est ça que je comprend pas. Quand on regarde Scene_Base, c'est la première chose qui est crée dans la fonction start du constructeur. Alors qu'il explique dans la définition de viewport que c'est seulement une partie de l'écran. Je comprend pourquoi si c'est une partie de l'écran, c'est la base qui supporte les autres élément qui viennent s'ajouter après -_-

À moins qu'il faille en crée plusieurs mais je comprend pas l'utilité à ce moment là. Dans ma tête ça fait viewport puis les autres élément qui s'ajoute par dessus. Pour l'écran titre background, foreground, puis le titre et la fenêtre de commande.

M'enfin, je me prend pt la tête pour rien mais ça m'énerve de pas comprendre

J'avais aussi modifié les valeurs de create_main_viewport (par défaut la même taille que l'écran) mais ça a rien changé d'observable dans l'écran titre -_-

PS: Refresh? Je suis pas tombé encore dessus ou j'ai pas fait gaffe, ça sert à quoi?
 
tonyryu
Garde du Trésor

Garde du Trésor
avatar
http://www.tonyryudev.com En ligne

Nombre de messages : 881
Age : 37
Localisation : Près de Nantes
Capacités : expert
Distinction : aucune
Date d'inscription : 27/05/2010

MessageSujet: Re: Compréhension d'une scene (au sens de RM)   Jeu 22 Juin 2017 - 12:33

Attention, un sprite est un objet affichable à l'écran, rien a voir avec la notion de mouvement. Le bitmap, sont les données de l'image a afficher.

Le Tilemap, est très très complexe d'un point de vue mathématique. Voir ma note technique sur la gestion de construction de la map sur MV, sachant que c'est similaire sur VxAce : http://www.rpgmakervx-fr.com/t19192-note-technique-les-tile-id-et-leur-decodage-pour-affichage

As-tu regardé le fichier d'aide de VxAce? Il est très bien documenté sur les classes de base : RGSS Reference Manual -> Game Library

Oui alors, le viewport défini dans Scene_Base sert dans des scenes précises, soit pour être transmis au fenêtre de la scene, oubien faire des fondu de couleur, ou des flash. Effectivement, "par défaut", il prend tout l'écran. Mais rien n'empèche de le surcharger via un script custom et le modifier.
Pour l'écran titre le viewport n'est pas utilisé.

Tu peux également considérer la classe Window comme la classe Sprite mais avec des options beaucoup plus spécifiques.

Je ne peux que te conseiller de supprimer tous les scripts et de manipuler des objets RGSS simple directement dans un seul script. Tu en comprendras beaucoup plus efficacement les subtilités.


 
Shamugan
Gladiateur

Gladiateur
avatar

Nombre de messages : 582
Capacités : débutant
Distinction : Shashamumugangan [Yama feat GJLP]
Date d'inscription : 05/07/2016

MessageSujet: Re: Compréhension d'une scene (au sens de RM)   Jeu 22 Juin 2017 - 15:24

D'accord, bitmap c'est les données du coup. Mais ça représente quoi comme données? Dans l'aide, justement, il y qu'une propriété et après les méthodes indiquent qu'il y a la taille et les pixel. C'est tout ce qu'il y a ou il y a des trucs en plus?


D'accord, je file regarder ça. Ça m'intéresse beaucoup en plus car je voulais potentiellement créé ou utiliser des scripts de tile swape ou de pixel mouvement. Il y a des différences auxquelles je dois faire attention par rapport à MV ou bien non? Et les fonctions draw que tu présente, elles ont leur équivalents où sur Ace? Je viens de fouiller et j'arrive pas à les trouver... Dans l'aide non plus d'ailleurs Crying or Very sad

tonyryu a écrit:
As-tu regardé le fichier d'aide de VxAce?

Depuis que tu m'a lamentablement montré que pour ma précédente question, il aurait suffit que je regarde dans l'aide, maintenant, oui

Et régulièrement. J'ai bien progressé depuis mais je me perd encore un peu parfois^^


D'accord, bon, ben je vais essayer de regarder les moment où viewport est utilisé pour comprendre un peu mieux ça.

tonyryu a écrit:
Tu peux également considérer la classe Window comme la classe Sprite mais avec des options beaucoup plus spécifiques.

Euuhhh..... Neutral
C'est-à-dire? Pas bien compris là


tonyryu a écrit:
Je ne peux que te conseiller de supprimer tous les scripts et de manipuler des objets RGSS simple directement dans un seul script. Tu en comprendras beaucoup plus efficacement les subtilités.

WHAT? Ça fait un peu radical mais bon d'accord. J'essayerais de faire ça sans faire de bêtise mais j'ai quelque doute là

D'ailleurs à ce propos est-ce qu'il est possible d'utiliser la console qui s'ouvre en même temps qu'on lance le jeu pour faire des test. Et sinon, à quoi elle sert, parce que je peut même taper pas dessus...
 
tonyryu
Garde du Trésor

Garde du Trésor
avatar
http://www.tonyryudev.com En ligne

Nombre de messages : 881
Age : 37
Localisation : Près de Nantes
Capacités : expert
Distinction : aucune
Date d'inscription : 27/05/2010

MessageSujet: Re: Compréhension d'une scene (au sens de RM)   Jeu 22 Juin 2017 - 18:51

Exemple simple avec aucun script :
Code:
#Créer un nouveau sprite
spr = Sprite.new
# Associer un bitmap de la ressource Battler 002-Fighter02
#spr.bitmap = RPG::Cache.battler("002-Fighter02",0)
spr.bitmap = Bitmap.new('Graphics/Battlers/Angel.png')

# Positionner le sprite
spr.x = 100
spr.y = 100

loop do
  # Mettre à jour les graphiques
  Graphics.update
  # Mettre à jour les entrés claviers
  Input.update
  # Sortir de la boucle, Si Echap est appuyé
  break if Input.trigger?(Input::B)     
end

# Libérer le sprite
spr.dispose



le console, tu peux l'utiliser pour déboguer en utilisant la fonction print :

Print "ma valeur : " + maValeur.to_s

Petit défi : réaliser un pong avec simplement le moteur RGSS
 
Shamugan
Gladiateur

Gladiateur
avatar

Nombre de messages : 582
Capacités : débutant
Distinction : Shashamumugangan [Yama feat GJLP]
Date d'inscription : 05/07/2016

MessageSujet: Re: Compréhension d'une scene (au sens de RM)   Jeu 22 Juin 2017 - 20:48

Héhé, déjà un défi

Bon je vais voir ce que je peut faire alors mais ça sera sans doute pas pour tout de suite par contre^^

Sinon, thanks pour les explications.

Je lock aussi le topic même si j'ai pas eu toutes les réponses que je pensais, je pense avoir déjà de matière à travailler avant de reposer des questions^^
 
Contenu sponsorisé




MessageSujet: Re: Compréhension d'une scene (au sens de RM)