Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / News: Quoi de neuf sur Oniromancie (...) / Sorties: Dread Mac Farlane - episode 6 / News: Quoi de neuf sur Oniromancie (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

345 connectés actuellement

29351695 visiteurs
depuis l'ouverture

6919 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Maker VX

ConsoleFun

Hellsoft

Guelnika & E-magination

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Généralités > [RM2003] Création d'un simili-Mode 7

Aller à la page 1 2 3 4 5 6


Nemau - posté le 20/05/2021 à 03:07:06 (52202 messages postés) - honor -

❤ 0

The Inconstant Gardener

Domaine concerné : maths

image

Comment qu'on trouve la mesure de l'angle x ? (#noob en maths)

Quel RPG Maker choisir ?Ocarina of Time PCPolaris 03 • Le matérialisme c'est quand tu as du matériel.


subotai - posté le 20/05/2021 à 05:53:38 (536 messages postés)

❤ 0

Il est Conan, un Cimmérien. Il ne pleurera pas, alors je pleure pour lui.

Je voulais te répondre, mais a la place j'ai pris la tangente

Ton point te donne un rectangle de 4 sur 7, déjà coupé en deux, donc en réalité tu cherches un angle complémentaire dans un triangle rectangle, qui fait visiblement moins que 45°; Après ça je suis obligé d'aller sur youtube.

Spoiler (cliquez pour afficher)



La madame me dit que tu dois faire Arctan (4/7) sur ta calculette, ou tan^-1(4/7); j'ai essayé de mon coté, mais je suis tellement mauvais avec une texas que je suis sur de m'être trompé avec cette histoire de Rad/Deg sur la calculatrice.

Ma réponse si quelqu'un est prof de math:

Spoiler (cliquez pour afficher)



Archer et voleur --- En moyenne trois virgules par phrase --- Projet mémoire --- Plague doctor --- Je devrais être en train de bosser /// Etat d'esprit


Fflo - posté le 20/05/2021 à 07:47:14 (328 messages postés)

❤ 0

Pour 2023, j'essaye des choses... que je rate. Mais pas toujours.

Tout à fait.

image

Je suis bel et bien dans une configuration de triangle rectangle, condition sine qua non pour y appliquer les formules scolaires de trigonométrie.
Je désire connaître la valeur de l'angle bleu alors que je connais son côté adjacent (7) et son côté opposé (4).

J'ai toujours en tête le moyen mnémotechnique SOHCAHTOA pour déterminer quelle opération faire. (Sinus = Opposé / Hypoténuse ; Cosinus = Adjacent / Hypoténuse ; Tangente = Opposé / Adjacent)

Comme je connais le côté adjacent ainsi que le côté opposé, j'aurai recours à la tangente.
Plus précisément, j'utiliserai tan^-1 car je recherche un angle et pas une longueur.

Donc:
x = tan^-1 de 4/7 = 29.74 degrés environ

Petit scripteur amateur. J'ai un pack de scripts VX Ace qui ne vous permettra pas de faire le jeu du siècle, mais les petites fonctionnalités en plus à droite à gauche pourraient quand même vous démarquer.


Nemau - posté le 20/05/2021 à 12:46:53 (52202 messages postés) - honor -

❤ 0

The Inconstant Gardener

Heu... Merci pour vos réponses mais elles ne sont pas assez vulagrisées. ^^'

Je n'ai aucune idée de ce que représente le "^" dans "tan^-1".


- Autre question : est-il possible de calculer cet angle avec RM 2003 Steam ?

- Autre question : est-il possible de calculer la longueur de l'hypoténuse avec RM 2003 Steam ? L'utilisation théorème de Pythagore impliquant l'emploi de la racine carrée...

Quel RPG Maker choisir ?Ocarina of Time PCPolaris 03 • Le matérialisme c'est quand tu as du matériel.


Gari - posté le 20/05/2021 à 12:52:31 (5899 messages postés) - honor

❤ 0

Réponse courte : oui.
Réponse longue : tu vas en chier.

Pour simplifier (aller droit au but surtout), tu as la méthode d'Anton (sinus cosinus ça te parle ?) : https://www.rpg-maker.fr/index.php?page=tutos&id=499.

Je t'épargne le tuto de Tassle qui ne touche de toute manière pas RM2003, contrairement aux deux tutos précédents.


Mack - posté le 20/05/2021 à 12:58:47 (2288 messages postés)

❤ 0

Si tu utilises pas de patch particulier tu peux passer par Maniacs, qui permet de faire des trucs mathématiques plus poussé ( cos/sin/pow/sqrt).

( Je prend note de tout les commentaires, même si je n'y répond pas )


Anton_ - posté le 20/05/2021 à 13:08:42 (1522 messages postés)

❤ 0

En plus ce tuto a pour entrée l'angle et pour sortie un XY, pas l'inverse comme demandé.

J'ai fait un bout de code absolument immonde pour approximer un angle à partir d'un vecteur XY, j'ai complètement oublié quelle démarche j'ai utilisé mais j'y vois une fonction de racine carrée et une approximation sinx = x ... et l'angle en sortie n'est pas en degrés mais en crans de rotation de picture (RM2003 a 256 crans différnets par tour complet)

Qu'est ce que tu comptes faire avec l'angle en question ?

Raetribution | Megamike || tutos : 1 2 || TowerClimb cé bien || Rang Master sur TGM3.


Nemau - posté le 20/05/2021 à 13:13:08 (52202 messages postés) - honor -

❤ 0

The Inconstant Gardener

Merci pour vos réponses. J'aimerais si possible éviter d'utiliser des patchs.

Quel RPG Maker choisir ?Ocarina of Time PCPolaris 03 • Le matérialisme c'est quand tu as du matériel.


subotai - posté le 20/05/2021 à 15:56:35 (536 messages postés)

❤ 0

Il est Conan, un Cimmérien. Il ne pleurera pas, alors je pleure pour lui.

Citation:

Je n'ai aucune idée de ce que représente le "^" dans "tan^-1".

C'est pour écrire "Puissance", genre 2^2 c'est 2²

Bon courage, sinon

Archer et voleur --- En moyenne trois virgules par phrase --- Projet mémoire --- Plague doctor --- Je devrais être en train de bosser /// Etat d'esprit


Nemau - posté le 20/05/2021 à 16:24:47 (52202 messages postés) - honor -

❤ 0

The Inconstant Gardener

Merki.

Citation:

Après si tu présentes ton problème entièrement, il y a peut-être moyen qu'on trouve un raccourci qui t'évite de passer par les fonctions trigonométriques.


Je veux faire un simili Mode 7. J'ai programmé sans souci un système pour définir l'orientation du joueur : quand j'appuie sur droite ou gauche ça modifie une variable, entre 0 et 359 (si -1 ça devient 359 et si 360 ça devient 0). Le joueur met un peu moins de 4 secondes pour faire un tour complet (tour pour l'instant virtuel), donc niveau vitesse ça me semble bien (je pourrai toujours modifier ça plus tard si jamais c'est trop rapide ou trop lent).

Les éléments, des îles en pictures, sont affichées centrées verticalement (ligne d'horizon). Pour chaque île, les deux paramètres qui varient en temps réel sont :

- la position en x de l'île, à déterminer en comparant l'angle indiquant l'orientation du joueur (nord = 0°) et l'angle x du schéma de mon premier post (le point de coordonnées 0;0 correspond à la position du joueur, l'autre point correspond à la position de l'île)

- la taille de l'île (zoom/dézoom de la picture), à déterminer en fonction de la distance entre le joueur et l'élément

Quel RPG Maker choisir ?Ocarina of Time PCPolaris 03 • Le matérialisme c'est quand tu as du matériel.


Roi of the Suisse - posté le 20/05/2021 à 17:09:30 (29801 messages postés) - honor -

❤ 0

Alerte neige !

subotai a dit:

Citation:

Je n'ai aucune idée de ce que représente le "^" dans "tan^-1".

C'est pour écrire "Puissance", genre 2^2 c'est 2²

Bon courage, sinon

Attention tout de même, cette notation peut induire en erreur, même si elle est courante sur les calculatrices : il ne s'agit pas ici d'une véritable puissance -1 de la tangente, mais de la fonction réciproque de la tangente, c'est-à-dire l'arctangente.

L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Tassle - posté le 20/05/2021 à 19:43:10 (5234 messages postés)

❤ 4

Disciple de Pythagolf

Pour un point de coordonnées (x,y) y > x > 0 (comme illustré sur ton schéma), tu peux utiliser l'approximation :

angle =~ ((56*y² - 11*x²) / y²)*x / y

Après si x > y > 0 tu peux utiliser :

angle =~ 90 - ((56*x² - 11*y²) / x²)*y / x

Dans le cas où x < 0 ou y < 0 (ou les deux) ça va un peu dépendre de quel angle tu veux prendre, est-ce que tu veux que l'angle ait un signe etc. Mais en gros ça va rester des variations de ça.

Note que si x ou y est très grand ça peut overflow, et la faut ptet faire des trucs comme diviser x et y par 2 au préalable (ce qui n'affecte pas l'angle, à erreurs d'arrondis près).

Pour (x,y) = (4,7) par exemple, et en utilisant que des divisions entières, l'approximation donne 29 degrés.

~~


Nemau - posté le 20/05/2021 à 22:23:31 (52202 messages postés) - honor -

❤ 0

The Inconstant Gardener

:ah, je crois que tu me sauves là. <3

Citation:

Dans le cas où x < 0 ou y < 0 (ou les deux)

Le plus simple c'est que je fasse mes calculs avec x et y toujours positifs et qu'à la fin je rajoute 90, 180 ou 270 au besoin.

Citation:

Note que si x ou y est très grand ça peut overflow

Que signifie, ici, "overflow" ? :pense A priori les coordonnées iront jusqu'à 239 maximum (en x comme en y), est-ce que tu penses qu'avec de telles coordonnées ça peut "overflow" ?

Là où je sens que je vais m'amuser c'est vis-à-vis du fait que mon monde est censé boucler. :') Peut-être en ne mettant aucune île trop près du bord... Je vais voir.

Quel RPG Maker choisir ?Ocarina of Time PCPolaris 03 • Le matérialisme c'est quand tu as du matériel.


Tassle - posté le 21/05/2021 à 14:25:12 (5234 messages postés)

❤ 0

Disciple de Pythagolf

Citation:

Le plus simple c'est que je fasse mes calculs avec x et y toujours positifs et qu'à la fin je rajoute 90, 180 ou 270 au besoin.


Yep !


Par overflow je voulais dire dépasser la valeur maximale possible dans une variable (je sais pas comment RM gère ça après, si ça retourne dans les négatifs, si ça mets la valeur max, si ça plante...).

Mais pour des coordonnées allant de 1 jusqu'à 239 normalement t'es safe (la valeur max de variable dont t'auras besoin c'est 56*239*239 = 3198776).

De plus, pour ces coordonnées l'erreur maximale sur l'angle est de 1.7 degrés (en utilisant des divisions entières, sinon avec des valeurs flottantes ça serait 0.5). À toi de voir si c'est raisonnable :)


Edit :

Je viens de faire quelques tests et tu peux diminuer l'erreur max à 1.08 degrés en utilisant plutôt l'approximation

angle =~ ((115*y² - 24*x²) / (2*y²))*x / y

La valeur max de variable dont t'auras besoin c'est 115*239*239 = 6 568 915. Si j'en crois le tuto d'Anton la valeur max gérée par RM2k3 est 9 999 999 donc c'est bon.

~~


Anton_ - posté le 21/05/2021 à 17:33:48 (1522 messages postés)

❤ 0

RM2003 gère une valeur qui dépasse le max (qui est bien 9 999 999) en la mettant à la valeur max.
Pour la valeur min (-9 999 999) j'ai pas essayé mais je pense que ça le met à la valeur min aussi

Au passage, faire une division par zéro ne fait rien sur la variable, attention quand même ce serait pas simple à retrouver en débogage.

Raetribution | Megamike || tutos : 1 2 || TowerClimb cé bien || Rang Master sur TGM3.


Tassle - posté le 21/05/2021 à 17:46:44 (5234 messages postés)

❤ 0

Disciple de Pythagolf

D'acc merci pour la précision :)

Oui faut faire gaffe à la division par 0, mais si x=0 ou y=0 l'angle est de 0 ou 90 degrés respectivement, donc c'est facile à gérer (et si les deux sont 0 il n'y a pas d'angle à mesurer, c'est pas défini).

~~


Nemau - posté le 21/05/2021 à 19:58:10 (52202 messages postés) - honor -

❤ 0

The Inconstant Gardener

Super, merci beaucoup tous les deux.

Les cas ou x et/ou y valent 0 je gère le truc différemment (vu qu'il est facile d'en déduire l'angle que ça forme : 0, 45, 90, 135 etc), donc pas de souci.

Citation:

Je viens de faire quelques tests et tu peux diminuer l'erreur max à 1.08 degrés en utilisant plutôt l'approximation

angle =~ ((115*y² - 24*x²) / (2*y²))*x / y


Oki. 1.7 d'erreur max aurait fait l'affaire (c'est pas le prochain FPS à la mode que je programme :D) mais si je peux réduire encore un peu plus l'erreur max c'est cool. ^^ (bon par contre j'avais commencé à programmer avec ta formule précédente, gnnnn xD)

À un moment j'avais pensé à réduire l'erreur en rajoutant 0 ou 1 au résultat de telle ou telle division, en fonction du premier chiffre du "modulo" (4 ou moins = pas d'ajout, 5 ou plus = ajout de +1), mais je ne sais pas comment faire pour récupérer le premier chiffre du modulo, sachant que la longueur de ce dernier est variable.



Edit : Tassle, pour ta nouvelle formule, les conditions sont les mêmes que la précédente ? : y>x>0, et "90 - formule" si x>y>0

Quel RPG Maker choisir ?Ocarina of Time PCPolaris 03 • Le matérialisme c'est quand tu as du matériel.


Tassle - posté le 21/05/2021 à 20:17:22 (5234 messages postés)

❤ 1

Disciple de Pythagolf

Yes, mêmes conditions :) (je précis que dans le cas "90-formule" les variables x et y sont interverties)

C'est une bonne idée de faire des divisions au plus proche et c'est pas trop dur à faire*, mais en utilisant ça j'ai réussi à diminuer l'erreur max qu'a 1.025 (en utilisant 111 et 22 à la place de 115 et 24) donc je sais pas si ça vaut le coup.

Citation:

(bon par contre j'avais commencé à programmer avec ta formule précédente, gnnnn xD)


Bah t'as pas grand chose à changer :p

*Pour ceux que ça intéresse:

Spoiler (cliquez pour afficher)



~~


Nemau - posté le 21/05/2021 à 20:26:47 (52202 messages postés) - honor -

❤ 0

The Inconstant Gardener

Citation:

C'est une bonne idée de faire des divisions au plus proche et c'est pas trop dur à faire*, mais en utilisant ça j'ai réussi à diminuer l'erreur max qu'a 1.025 (en utilisant 111 et 22 à la place de 115 et 24) donc je sais pas si ça vaut le coup.


Du coup, tu me recommandes quand même d'utiliser 111 et 22 à la place de 115 et 24 ? (si ça me permet d'être un peu plus précis, même d'un chouia, et que ce n'est pas plus compliqué...)

Citation:

Bah t'as pas grand chose à changer :p


Je disais ça parce que ta seconde formule (celle de ton post de 14h25) est, sur la forme, un peu différente de celle de hier, or dans RM on ne peut pas directement taper la formule, donc j'aurais peut-être des variables à créer ou à l'inverse des variables inutiles. Mais ça sera vite modifié, je dis pas. ^^

Quel RPG Maker choisir ?Ocarina of Time PCPolaris 03 • Le matérialisme c'est quand tu as du matériel.


Tassle - posté le 21/05/2021 à 20:33:05 (5234 messages postés)

❤ 0

Disciple de Pythagolf

Normalement si je me suis pas gouré la formule a la même forme, sauf qu'il y a un "2" devant y² ^^

Citation:

Du coup, tu me recommandes quand même d'utiliser 111 et 22 à la place de 115 et 24 ?


Nope, pour des divisions entières arrondi en deça (ce que fait RM j'imagine) plutôt qu'au plus proche 115 et 24 c'est mieux ^^

Par contre j'ai trouvé encore mieux (sans devoir modifier les divisions):

angle =~ ((165*y² - 31*x²) / (3*y²))*x / y + 1

Avec une erreur max de 0.94. Pour cette formule il faut des coordonnés de maximum 246 (donc c'est bon pour toi).

Fait bien gaffe à faire les opérations dans l'ordre donné aussi (par exemple pour le machin*x / y à la fin, même si mathématiquement c'est équivalent, les arrondis font qu'il faut d'abord multiplier par x puis diviser par y).

~~


Nemau - posté le 21/05/2021 à 20:37:33 (52202 messages postés) - honor -

❤ 0

The Inconstant Gardener

Citation:

Normalement si je me suis pas gouré la formule a la même forme, sauf qu'il y a un "2" devant y² ^^

Il en faut pas plus pour me perturber, niveau maths j'ai décroché en quatrième. xD

Mais je pense avoir un esprit suffisamment logique pour faire des trucs plus ou moins complexes sur RM (même si je n'aurais jamais le niveau de Joke ou d'Anton, cela va sans dire).

Citation:

Par contre j'ai trouvé encore mieux (sans devoir modifier les division):

angle =~ ((165*y² - 31*x²) / (3*y²))*x / y + 1

Avec une erreur max de 0.94. Pour cette formule il faut des coordonnés de maximum 246 (donc c'est bon pour toi).

Super, merci. :lei

Quel RPG Maker choisir ?Ocarina of Time PCPolaris 03 • Le matérialisme c'est quand tu as du matériel.


Anton_ - posté le 21/05/2021 à 20:41:12 (1522 messages postés)

❤ 0

Faudra pas aller plus haut que 175 pour le coeff d'une coordonnée au carré :
(175 * 239²) = 9 996 175

En coup cas c'est cool je pourrais m'en servir aussi.

Raetribution | Megamike || tutos : 1 2 || TowerClimb cé bien || Rang Master sur TGM3.


Tassle - posté le 21/05/2021 à 20:50:58 (5234 messages postés)

❤ 0

Disciple de Pythagolf

Yep justement pour trouver ces valeurs j'ai juste fait un petit script* qui teste ((a*y² - b*x²) / (c*y²))*x / y + d pour toute valeur de a entre 1 et 175, b entre 1 et a, c entre 1 et 10, d entre -5 et 5 :)
(au début j'avais pas le paramètre d, ce qui m'a fait passer à coté de la solution a,b,c,d = 165,31,3,1)

Citation:

Mais je pense avoir un esprit suffisamment logique pour faire des trucs plus ou moins complexes sur RM (même si je n'aurais jamais le niveau de Joke ou d'Anton, cela va sans dire).


Oui c'est pas très handicapant, les "maths" (mathouilles) c'est souvent utile qu'à la marge, je connais des développeurs qui sont des billes en maths ^^

*Pour ceux que ça intéresse, c'est du Python vite-fait (pas propre):

Spoiler (cliquez pour afficher)



~~


Nemau - posté le 21/05/2021 à 21:16:45 (52202 messages postés) - honor -

❤ 0

The Inconstant Gardener

Citation:

Yep justement pour trouver ces valeurs j'ai juste fait un petit script* qui teste ((a*y² - b*x²) / (c*y²))*x / y + d


Tout ça pour un énième projet que je vais abandonner à tous les coups : tu es bien vertueux. =>[]

Citation:

Oui c'est pas très handicapant, les "maths" (mathouilles) c'est souvent utile qu'à la marge, je connais des développeurs qui sont des billes en maths ^^


Ouais. En fait je pense avoir un esprit suffisamment rigoureux pour la prog un peu complexe sur RM. Par contre je suis très lent, mais bon, ça tombe bien j'ai pas de deadline ^^ (sortir un jeu RM avant la maison de retraite serait bien, cela dit :D).


Encore merci Tassle et les autres. Je préfère laisser ce topic ouvert (non résolu) pour les probables éventuels futurs problèmes. Surtout qu'une fois que j'aurais créé ce système affichant les îles au bon endroit sur la ligne d'horizon, il me restera :
- créer le système pour qu'elles s'affichent plus ou moins grandes en fonction de leur distance au bateau.
- créer le système de déplacement (s'il le faut je me limiterai à 8 directions seulement).

Quel RPG Maker choisir ?Ocarina of Time PCPolaris 03 • Le matérialisme c'est quand tu as du matériel.


Tassle - posté le 21/05/2021 à 21:38:47 (5234 messages postés)

❤ 1

Disciple de Pythagolf

Citation:

Tout ça pour un énième projet que je vais abandonner à tous les coups : tu es bien vertueux. =>[]


Ça peut servir à d'autres gens ^^ Et puis j'ai une tendance un peu obsessive à ne pas m'arrêter de chercher avant d'avoir trouvé la meilleure solution à un problème (surtout quand ça touche aux maths).

En parlant de ce côté obsessif, j'ai trouvé mieux :F (en fait j'avais pas bien réfléchi au meilleur ordre dans lequel faire les opérations.

Sans modifier les divisions :
(161*y*y - 27*x*x) / (3*y) * x / (y*y) + 1
(erreur max 0.93)

Avec les divisions arrondies au plus proche :
(167*y*y - 33*x*x) / (3*y) * x / (y*y)
(erreur max 0.8)

Je m'arrête de chercher là sinon ça va mal tourner :F

~~

Aller à la page 1 2 3 4 5 6

Index du forum > Généralités > [RM2003] Création d'un simili-Mode 7

verrouillé

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