Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Jeux: puie z / Jeux: Citymaime - Chapitre 1 / Jeux: Mer, îles et fous / News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

259 connectés actuellement

30732002 visiteurs
depuis l'ouverture

1980 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Tashiroworld

RPG Maker - La Communauté

RPG Maker Détente

Le Comptoir Du clickeur

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [Scripts] Petites questions connes sur les SCRIPTS!!

Aller à la page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

Reprise du message précédent:

Gari - posté le 14/05/2020 à 11:00:25 (5901 messages postés) - honor

❤ 0

Ca fait un joli rectangle bleu sur fond noir. :pense

Ca me dit pas trop comment le premier fonctionne (désolé, c'est pour mettre à jour le script du dessus, pas pour un usage personnel :goutte)

Je suppose que l'objectif pour rendre ton script utilisable, ce serait que je crée un Class_Rotation pour éviter que ça se lance automatiquement et le code qui permettrait de faire ça par appel de script...


Suite du sujet:

xvw - posté le 14/05/2020 à 11:34:41 (736 messages postés) -

❤ 0

yo

Je pense qu'il vaut mieux supprimer le script. (Simplement);

https://xvw.lol


gif - posté le 14/05/2020 à 11:57:02 (4782 messages postés) - honor

❤ 0

Egotrip Gigamaxé

Ah ok je croyais que c'était pour toi, du coup j'avais fais un exemple avec un rectangle bleu qui tourne sur lui même :F.

Ouais faudrait rendre ça plus générique.

Itch.io | Twitter | Une IA qui génère des sprites de Pokémon | Cochouchou à la coupe du monde ! | le concours hebdomadaire du meilleur screen !


Gari - posté le 14/05/2020 à 12:23:46 (5901 messages postés) - honor

❤ 0

Non, je nettoie fais le ménage.

Désolé de t'avoir plébiscité pour pas grand-chose (dans la mesure où je ne ferai rien de ce mini script, n'étant pas... maker/programmeur). Mais merci quand même !
A défaut de pouvoir rajouter des choses, je pense que je dois pouvoir expliquer ce que tu as fait (à l'aide d'un cours de maths cve serait mieux, mais faudra se contenter de la version CE2). L'objectif du script posté sur Oniro était peut-être juste d'expliquer comment scripter une rotation sur XP (ce qui peut être intéressant pour créer des animations sans image, avec des collisions précises au pixel prêt, ou d'autresz trucs dont vous avez plus l'idée que moi).

Spoiler (cliquez pour afficher)




gif - posté le 14/05/2020 à 12:49:52 (4782 messages postés) - honor

❤ 0

Egotrip Gigamaxé

Ok, je comprend mieux ce que tu veux faire :).

Du coup j'ai intégré ça dans la classe Sprite (script à coller au dessus de main) :

Spoiler (cliquez pour afficher)



Je l'utilise depuis un event pour l'exemple :
image

Ca donne ça une fois que je touche l'event :
image

On peut sûrement faire mieux, bien sur :sourire2.

Veux-tu que je mette à jour le tuto dans ce sens ?

Itch.io | Twitter | Une IA qui génère des sprites de Pokémon | Cochouchou à la coupe du monde ! | le concours hebdomadaire du meilleur screen !


Gari - posté le 14/05/2020 à 13:46:35 (5901 messages postés) - honor

❤ 0

Oui, c'est l'idée (enfin c'est ce que je pense être voulu par le tuto à la base) !

Est-ce que ces deux lignes permettraient le déplacement du centre de rotation sur la carte ?

Citation:

self.x = x.round + x_centre
self.y = y.round + y_centre


Les positions x et y ont l'air d'être calculées selon la position de ce fameux centre.

Vu que le titre du tuto mentionne le centre mobile, ce serait juste bien de rajouter ça si ça a effectivement été montré (sinon juste le script comme tu l'as fait ce sera déjà très super bien, je suppose qu'il s'agissait surtout d'expliquer le principe de la rotation à la base).

J'ai quand même vérifié qu'aucun script identique similaire n'existait pour XP (serait peut-être temps Gari :doute6), et à priori non. Il y a quand même ce script de Fabien qui donne des méthodes pour déplacer des images, mais je ne pense pas que ce soit exactement la même chose.

Ce serait vraiment super si tu voulais bien refaire le tuto dans ce sens en tout cas (avec les explications) <3

xvw : J'aimerais tellement masquer (supprimer n'est pas une option), mais ma direction (les grands pontes tout là-haut) m'incite à une extrême prudence, surtout que je peux avoir la main un peu lourde quand je nettoie. :pfr


xvw - posté le 14/05/2020 à 13:57:38 (736 messages postés) -

❤ 0

yo

Le tutoriel est discutablement pédagogique. Et même si la version de Gif est "plus user-friendly", elle nécéssite de comprendre la logique des Sprites (et donc par extension des Bitmaps). Et généralement, dès lors que l'on connait ça, l'implémentation du script devient assez évidente.

Pour améliorer le script, il faudrait ajouter sa représentation dynamique (dans Game_Picture, Game_Character etc.).

Ici, posé "plic ploc" comme ça, il n'apporte pas grand chose.

https://xvw.lol


Gari - posté le 14/05/2020 à 14:41:06 (5901 messages postés) - honor

❤ 0

Citation:

Pour améliorer le script, il faudrait ajouter sa représentation dynamique (dans Game_Picture, Game_Character etc.).



Tu veux dire faire en sorte d'adapter cette méthode pour les pictures, charset, etc ?
Est-ce que l'expliquer ne suffirait pas ? A partir du moment où la méthode de base a été expliquée, elle doit pouvoir être adptable un peu partout, non ?
Pour les charset et autres éléments regroupés sur un fichier commun, cela voudrait dire faire en sorte que seul le charset actif tourne, sans voir les autres éléments.

Ou peut-être que tu parles d'autre chose. (un schéma représentant l'objet en mouvement sur des cercles pour montrer la façon dont les angles progressent en fonction du déplacement ?)


xvw - posté le 14/05/2020 à 17:03:09 (736 messages postés) -

❤ 0

yo

Citation:

Est-ce que l'expliquer ne suffirait pas


Je ne trouve pas... parce que la démarche passe à côté de "la manière de programmer pour RPGmaker". Je ne doute pas une seule seconde que l'auteur savait parfaitement "comment s'en servir". Mais ce tutoriel est, pour moi, une petite curiosité partagé entre "potes scripteurs". Ce qui le rend assez inutile car :

- un scripteur sait déjà comment l'implémenter
- un non scripteur ne comprendra pas comment s'en servir.

Expliquer l'approche de manière "moins concrètes" serait sans aucun doute "plus intéressant".

Citation:

Est-ce que l'expliquer ne suffirait pas ? A partir du moment où la méthode de base a été expliquée, elle doit pouvoir être adptable un peu partout, non ?



Dans RPGMaker, un script "ne modifie généralement pas directement le sprite". Il modifie une instance "dynamique" Game_quelquechose qui transmettra ses données à une instance de Sprite_quelquechose. Généralement, on voudrait que ce genre de transformation soit calculée dans la représentation dynamique (Game_xxx) et non visuelle (Sprite_xxx).

D'où le fait que pour moi, il faut soit :
- proposer un script qui implémente correctement ce que propose l'auteur et facile à prendre en main. Ce qui permettrait de réécrire le tutoriel en expliquant comment utiliser le script et eventuellement ajouter un point sur "comment fonctionne le script" (en introduisant la notion de coordonnées).
- soit simplement supprimer/archiver le tutoriel car il n'apporte pas grand chose.

https://xvw.lol


Gari - posté le 14/05/2020 à 18:13:34 (5901 messages postés) - honor

❤ 0

Je vais voir ce que gif propose. En l'état, le script a de toute manière été masqué, il n'est pas utilisable comme tel.

Citation:

Expliquer l'approche de manière "moins concrète" serait sans aucun doute "plus intéressant".


Je te sens motivé, là. :rit2 =>[]

Bon, assez ri, j'ai des tutos à latter.


gif - posté le 17/05/2020 à 15:28:12 (4782 messages postés) - honor

❤ 0

Egotrip Gigamaxé

Je te proposerai quelque chose ce week-end :).

Edit : Voila ma proposition.

J'ai implémenté une méthode de rotation depuis la classe Game_Picture. C'est utilisable sur les images du coup et l'on peut choisir n'importe quel point de rotation : (script à placer au dessus de main)

Spoiler (cliquez pour afficher)



La méthode peut être utilisée par appel de script (depuis un event). Ci-dessous un exemple avec une rotation de l'image autour de son centre :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
  #--------------------------------------------------------------------------
  # * Change la vitesse de rotation de l'image
  #     a_x : position sur l'axe X du point de rotation
  #     a_y : position sur l'axe Y du point de rotation
  #     a_vitesse_rotation : vitesse de rotation (sens anti-horaire) de l'image
  #--------------------------------------------------------------------------
$game_screen.pictures[1].rotate(a_x, a_y, a_vitesse_rotation )



image

Résultat :
image

Ça manque d'illustration pour expliquer le processus et les calculs, mais je manque de temps aujourd'hui => je ferrai ça pendant le pont la semaine prochaine.

On part la dessus ?

Edit : ce que ça ne fait pas :
- Translation + rotation en même temps

Itch.io | Twitter | Une IA qui génère des sprites de Pokémon | Cochouchou à la coupe du monde ! | le concours hebdomadaire du meilleur screen !


xvw - posté le 17/05/2020 à 15:31:25 (736 messages postés) -

❤ 0

yo

Le fait de passer par une boucle est assez ennuyant. Est-ce que tu ne penses pas que ce serait mieux de t'inspirer de ce qui est fait pour la rotation (normale) (ou les changements de teintes) histoire de pouvoir l'activer/désactiver à la demande.

https://xvw.lol


gif - posté le 17/05/2020 à 15:41:29 (4782 messages postés) - honor

❤ 0

Egotrip Gigamaxé

C'est une bonne idée :).

Edit : c'est fait. Ça peut encore être amélioré (voir édit post précédent).

Itch.io | Twitter | Une IA qui génère des sprites de Pokémon | Cochouchou à la coupe du monde ! | le concours hebdomadaire du meilleur screen !


xvw - posté le 17/05/2020 à 23:13:36 (736 messages postés) -

❤ 0

yo

C'est beaucoup mieux !
Par contre plusieurs points :
- je pense que le code ne devrait pas être un mélange entre Anglais et Français. (Et je dropperai les commentaires en Français, quitte à décrire les étapes en complément)
- ton code devrait utiliser des Alias pour ne pas répéter le code déjà existant. Déjà, ça réduira fortement ton code et en plus ça maximisera la comptabilité avec d'autres scripts.

https://xvw.lol


xvw - posté le 18/05/2020 à 04:08:45 (736 messages postés) -

❤ 1

yo

Ruby est un langage "ouvert", ça veut dire que tu peux modifier n'importe quelle classe en "ajoutant" des méthodes. Par exemple, imaginons qu'on ait cette classe :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
 
class Foo
  def bar
     p "Bar"
  end
end
 



Tu peux ajouter une méthode à la classe Foo dans un nouveau script :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
 
class Foo
  def foobar
     p "FooBar"
  end
end
 



Maintenant, la classe Foo a deux methodes (en plus du initialize/new). Ce qui veut dire que tu peux écraser une méthode qui existe déja :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
 
class Foo
  def bar
     p "Nouveau bar"
  end
end
 



Dorénavant quand tu appelleras :

Portion de code : Tout sélectionner

1
2
3
 
Foo.new.bar
 



Ça affichera (dans la console) "Nouveau bar".
Tout ça pourrait passer pour très dangereux (ce qui est d'ailleurs le cas) mais Ruby offre un mécanisme d'extension basé sur les alias.
Par exemple :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
 
class Foo
  alias_method :ancien_bar, :bar
  def bar
     p "J'appelle bar"
     ancien_bar
     p "J'ai appelé bar"
  end
end
 



Concrètement, la méthode `alias_method` permet de créer une copie d'une méthode en lui donnant un nouveau nom. De ce fait, il devient possible de l'appeler dans l'écrasement de l'ancienne méthode.

C'est primordiale quand on écrit un script parce que si on n'avait pas ce mécanisme d'alias, chaque personne modifiant un script rendrait l'ensemble des autres scripts incompatibles.
Ici, dans le script de Gif, si un Script avait été ajouté avant qui modifiait, par exemple, l'update de Game_picture (ce qui est le cas de RME par exemple), le script de Gif supprimerait toutes les modifications d'avant... ce qui est balot.

Donc concrètement, ça permet d'écrire du code "avant" et "après" une autre méthode. Pas "au milieu", cependant, le RGSS est suffisament bien découpé pour qu'il soit possible d'injecter du code à peu près où l'on veut.

Pour comprendre comment construire des scripts, je t'invite, si ça t'intéresse, à lire ces deux tutoriels (qui sont relativement accessibles) :

https://www.biloucorp.com/creation-dun-shifumi-avec-le-rgss3-16
https://www.biloucorp.com/creer-son-propre-systeme-de-quetes-partie-12-17

https://xvw.lol


Gari - posté le 18/05/2020 à 15:00:44 (5901 messages postés) - honor

❤ 0

C'est que ça prend forme tout ça. :ange2

Je connaissais l'alias comme réutilisateur d'ancienne méthode, mais je comprends un peu mieux pourquoi les gens préfèrent le RGSS3 pour les scripts.


xvw - posté le 19/05/2020 à 10:14:29 (736 messages postés) -

❤ 0

yo

Tu fais référence aux tutoriels que j'ai posté en bas de message ?
Parce que les alias fonctionnent sur tout les RGSS.

https://xvw.lol


Gari - posté le 19/05/2020 à 10:33:42 (5901 messages postés) - honor

❤ 0

Non, je croyais qu'il s'agissait d'une généralité (RGSS3 qui utilise l'alias, et pas les autres) :F
(voilà ce que c'est de lire en diagonales)


xvw - posté le 20/05/2020 à 10:12:24 (736 messages postés) -

❤ 0

yo

Non, ça n'existe pas. Tu as peut être vu ça :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
 
class A 
  alias new_method old_method
  def old_method 
    ...
  end
end
 



Qui est, en terme de fonctionnement, identique à l'utilisation d'alias_method. Mais je privilégie toujours les méthodes plutôt que les instructions un peu magique (each au lieu de for par exemple). La seule exception que je fais, c'est l'utilisation de begin/rescue, if/else/etc et while/do while parce qu'on a rarement le choix.

https://xvw.lol


gif - posté le 25/05/2020 à 18:28:36 (4782 messages postés) - honor

❤ 0

Egotrip Gigamaxé

@Gari : J'ai terminé le code pour la rotation d'image (utilisation des alias + anglais):

Spoiler (cliquez pour afficher)



Script à placer au dessus de "main".

Fonctionne pas appel de script (exemple avec l'image d'ID 1):

Portion de code : Tout sélectionner

1
$game_screen.pictures[1].rotate(pointRotationX, pointRotationY, vitesseRotation)



Usage :
image

Résultat (avec un ptit point rouge juste pour l'exmple):
image

Ça convient ainsi ?

Itch.io | Twitter | Une IA qui génère des sprites de Pokémon | Cochouchou à la coupe du monde ! | le concours hebdomadaire du meilleur screen !


Gari - posté le 26/05/2020 à 14:19:24 (5901 messages postés) - honor

❤ 0

Nickel tant qu'on fait pas un copier coller de la portion de code dans l'appel de script sans enlever les espaces (comme un bousin). Le rendu avec le loop est super propre.

Par contre, j'ai essayé de déplacer l'image avec la rotation, mais on dirait que le centre du cercle est fixe, même en déplaçant l'image (l'image se déplace et refait la rotation sur sa position initiale).


xvw - posté le 26/05/2020 à 14:24:27 (736 messages postés) -

❤ 0

yo

Le script est vraiment mieux. Quelques petits points "stylistiques".

- Je n'utiliserais pas "old" comme préfixe pour l'alias... parce que c'est une habitude prise par beaucoup de scripteur, donc ça peut engendrer des soucis. Que dirais tu de `gif_rotate_pictures_`.

- Même si ce n'est pas dramatique, c'est assez peu standard de voir des variables avec des majuscules en Ruby. Donc `origin_x` me semble plus adéquat que `origin_X`(par exemple).

- Je localiserai toutes l'update de la rotation dans une méthode spécifique que j'appellerais dans update.

- comme en Ruby, le if est une expression (ce qui est assez rare dans d'autres langages et vraiment domage!) j'utiliserais la forme `x = if` plutot que `if ... x =` ça permettra d'éviter la répétition de angle_offset (et c'est moins chiant si un jour tu veux changer le nom de la variable par exemple).

- Le dernier point est de l'ordre du détail mais en fait : 2 * Math::PI / 360.0 est en fait égal à `Math::PI / 180.0` mais en fait ça donne une réponse vraiment très très précise pour ... "un monde de pixel". Donc tu peux te contenter de multiplier par 57.3.

https://xvw.lol


gif - posté le 26/05/2020 à 14:41:15 (4782 messages postés) - honor

❤ 0

Egotrip Gigamaxé

Ce script c'est un jour sans fin :tirlalangue2.

@Gari : ouais y'a des limitations actuellement. Tu ne peux pas faire translation + rotation en même temps. C’est cependant une feature quasi indispensable donc je vais la rajouter.

@xyz : Merci pour ton retour. Pour l'histoire des simplifications telles que 57.3, je préfère souvent garder de la clarté au cas ou quelqu'un souhaite lire le code ou qu'il se passe plusieurs jours sans que j'y touche (moi = débile). Mais maintenant que j'y pense, j'peux toujours laisser un commentaire :F.

Bref, je reviendrai :cig.

Itch.io | Twitter | Une IA qui génère des sprites de Pokémon | Cochouchou à la coupe du monde ! | le concours hebdomadaire du meilleur screen !


Gari - posté le 26/05/2020 à 15:14:57 (5901 messages postés) - honor

❤ 0

Désolé, c'est juste ce que j'avais compris par centre mobile (et bon pouvoir bouger l'image ça permet tellement plus de choses... genre, des feuilles qui tournent ! De la grêle ! Ou même des fonctions plus avancées pour un jeu de plateforme). ^^'

gif a dit:

xyz


Tiens, y a pas que moi qui la fait.


gif - posté le 26/05/2020 à 15:16:54 (4782 messages postés) - honor

❤ 0

Egotrip Gigamaxé

(je taquine :p.)

Mais je suis d'accord sinon, faut que je pousse dans cette direction.

Itch.io | Twitter | Une IA qui génère des sprites de Pokémon | Cochouchou à la coupe du monde ! | le concours hebdomadaire du meilleur screen !


xvw - posté le 26/05/2020 à 15:35:05 (736 messages postés) -

❤ 0

yo

Oui, c'est pour ça que j'ai dit que le dernier point était de l'ordre du détail. Je trouve que les points précédents sont, eux, vraiment plus important :)

https://xvw.lol

Aller à la page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

Index du forum > Entraide > [Scripts] Petites questions connes sur les SCRIPTS!!

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers