Espace TI: Forum
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
ETB Pokémon Fable Nébuleuse : où ...
Voir le deal

Programmation usuelle.

5 participants

Aller en bas

Programmation usuelle. Empty Programmation usuelle.

Message par nikitouzz Jeu 3 Jan - 11:26

J'ai toujours fais de jolie programme, mais que je m'attaque a la physique d'un programme je bloque! alors, ma qquestion est la suivante, si quelqu'un peut m'expliquer comment gerer les sauts et la gravité cela me serait benefique je sais que builderboy a rediger d'excellent tuto mais j'ai du mal avec l'anglais, merci d'avance.
nikitouzz
nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 28
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :
  • - TI-Basic Z80
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic 68K
  • - TI-Basic Nspire
Calculatrices :
  • - TI-73
  • - TI-76.fr
  • - TI-82 Stats.fr
  • - TI-83+
  • - TI-84+
  • - TI-92
  • - TI-Nspire
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

Programmation usuelle. Empty Re: Programmation usuelle.

Message par mdr1 Jeu 3 Jan - 12:25

sachiix69 a écrit:J'ai toujours fais de jolie programme, mais que je m'attaque a la physique d'un programme je bloque! alors, ma qquestion est la suivante, si quelqu'un peut m'expliquer comment gerer les sauts et la gravité cela me serait benefique je sais que builderboy a rediger d'excellent tuto mais j'ai du mal avec l'anglais, merci d'avance.

J'ai toujours fait de jolis programmes, mais quand je m'attaque à la
physique d'un programme, je bloque (espace) ! Alors, ma question est la suivante,
si quelqu'un peut m'expliquer comment gérer les sauts et la gravité, cela
me serait bénéfique, je sais que builderboy a rédigé d'excellents tutos,
mais j'ai du mal avec l'anglais, merci d'avance.

Ben t'utilises les équations différentielles, ou encore tu calcules les nouvelles positions à chaque nouvel instant donné en ajoutant le travail élémentaire de chaque force.
mdr1
mdr1
Or 1
Or 1

Sexe : Masculin
Age : 34
Messages : 124
Date d'inscription : 16/03/2011
Points Forum : 4
Points Concours : 0
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic Nspire
  • - Ndless Nspire
Calculatrices :
  • - TI-82
  • - TI-83+
  • - TI-84 Pocket.fr
  • - TI-Nspire CX

TI-84 Pocket.fr


Revenir en haut Aller en bas

Programmation usuelle. Empty Re: Programmation usuelle.

Message par linkakro Jeu 3 Jan - 14:53

Le travail est une énergie mécanique transmise. Donc le terme est mal choisi.

Je ne suis pas dans le bain pour l'aspect codage. Je me limite déjà à la mécanique du point en référentiel galiléen. (tu diras après si tu veux aussi les référentiels et les solides...)

On revient effectivement aux équations différentielles pour élaborer le mouvement rigoureusement.
En programmation on effectue plutôt des approximations avec des déplacements élémentaires (->différentielles) sur des intervalles de temps très courts.
C'est la méthode d'Euler en maths pour approcher les courbes. (on peut aussi parler de dévelloppement limité pour ceux qui connaissent)

EDIT: ne pas confondre une équation différentielle et le concept de la différentielle. L'équation est une relation entre une fonction et ses dérivées, et la différentielle est un concept représentant des quantité infinitésimales qui interviennent dans certaines notations des équations différentielles.

Puisque la vitesse est la dérivée de la position, on écrit v=dx/dt ou encore v*dt=dx
On écrit alors la relation : x2=x1+dx=x1+v1*dt
En remplaçant la différentielle dt (concept infinitésimal) par de petites valeurs de temps, on est très proche de la réalité et on tombe sur Euler car v*dt=déplacement_élémentaire.

Ainsi ajoûter un élémentaire entre deux instants séparés d'un temps dt permet de simuler un mouvement réaliste, même si la vitesse est variable.
Si le temps entre les instants est celui entre deux frames de ton jeu, et que le jeu est suffisamment rapide, alors cela suffit.
Même méthode pour le lien entre accélération et vitesse.

On fixe une accélération de pesanteur g. Dans la réalité c'est 9.81m*s-² sur Terre à Paris mais dans un jeu ce sera probablement des pixels *s-².
Si ton objet est isolé, son accélération est simplement celle de la pesanteur.
Sinon il faut ajoûter les accélérations des autres forces exercées sur ton objet.
Par la loi de Newton, on a F=m*a. Donc on aura a=g+(F1+...+Fn)/m.

Dès qu'il y a d'autres forces, c'est tout un exercice, même avec des approximation. Je ne traiterai pas d'autre force spontanément.

Si tu veux déterminer le mouvement en tout instant pour une accélération constante et rigoureusement, on obtient :
v=v0+a*(t-t0)
x=x0+v0*(t-t0)+a*(t-t0)^2
Pour la vitesse constante on a juste a=0.

Bien sûr on projète tout cela sur les axes, et on effectue les calculs sur chaque axe.
(bien sûr il n'y a pas de pesanteur sur l'axe horizontal, et sur l'axe vertical il ne faut pas se tromper de signe : on a "-g" si l'axe est vers le haut).

Au final ce qui t'intéresse est normalement
vx:=vx+ax*dt;
vy:=vy+ay*dt;
x:=x+vx*dt;
y:=y+vy*dt;


Dernière édition par linkakro le Jeu 3 Jan - 17:19, édité 1 fois
linkakro
linkakro
Or 4
Or 4

Sexe : Masculin
Age : 30
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84 Pocket.fr

TI-84+ SE


Revenir en haut Aller en bas

Programmation usuelle. Empty Re: Programmation usuelle.

Message par nikitouzz Jeu 3 Jan - 17:08

O_o hum je vais relire cela avec plus d'attention ce soir car la je ne comprend pas trop (des equations differenciel en axe ^^ je vais m'amuser Langue )
nikitouzz
nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 28
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :
  • - TI-Basic Z80
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic 68K
  • - TI-Basic Nspire
Calculatrices :
  • - TI-73
  • - TI-76.fr
  • - TI-82 Stats.fr
  • - TI-83+
  • - TI-84+
  • - TI-92
  • - TI-Nspire
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

Programmation usuelle. Empty Re: Programmation usuelle.

Message par matrefeytontias Ven 4 Jan - 9:12

Hem ... O_o'

J'ai déjà fait des jeux avec de la gravité (même plusieurs gravités -> Gravity Walls en a 4) j'ai jamais eu besoin de tout ça ... Franchement je trouve que sur calculatrice ce problème de précision ne sert à rien puisque les pixels sont gros comme mon poing fermé.

Ce que j'ai toujours fait et fais toujours, c'est ça :
Code:
Xspeed+X->X
Yspeed+X->X
Et on dirige (X/Y)speed avec les flèches.

Pour s'approcher de la réalité, on dit que Xspeed veut toujours valoir 0 et Yspeed veut toujours augmenter. C'est normal puisque la friction de l'air et du sol freine l'objet soumis à ces deux variables, et quand on tombe, on accélère.

Tout ce que t'as à faire dans ton programme c'est ça (pseudocode) :
Code:
ajouter Xgrav à X
ajouter Ygrav à Y

Si X>0
 décrémenter X
SinonSi X<0
 incrémenter X
FinSi
Si getKey(gauche)
 enlever 2 à Xgrav
FinSi
Si getKey(droite)
 ajouter 2 à Xgrav
FinSi
Si touche_le_sol et getKey(touche_de_saut)
 Mettre Ygrav à coefficient_saut
FinSi

AfficherImage(X,Y,joueur)


Dernière édition par matrefeytontias le Ven 4 Jan - 16:36, édité 1 fois
matrefeytontias
matrefeytontias
Platinum 1
Platinum 1

Sexe : Masculin
Age : 26
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - Lua Nspire
  • - Ndless Nspire
Calculatrices :
  • - TI-83+.fr
  • - TI-Nspire CAS

TI-83+.fr


Revenir en haut Aller en bas

Programmation usuelle. Empty Re: Programmation usuelle.

Message par linkakro Ven 4 Jan - 14:44

Puisque la précision d'une TI est faible, on est d'accord sur la conclusion.
Seulement j'ai essayé de justifier avant de sortir le résultat principal.

Là où tu es bien plus pratique que moi, c'est quand tu simules les frictions de l'air sans te demander le vecteur à chaque instant. Tu le fixes une bonne fois et c'est marre.
Et puis aussi quand tu utilises un coefficient saut sans te demander ce à quoi il correspond physiquement, puisqu'on en a pas besoin.

Voilà, matref t'as montré le côté le plus pratique. (en tout cas pour la méca du point, puisqu'on a pas besoin du reste)
linkakro
linkakro
Or 4
Or 4

Sexe : Masculin
Age : 30
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84 Pocket.fr

TI-84+ SE


Revenir en haut Aller en bas

Programmation usuelle. Empty Re: Programmation usuelle.

Message par mdr1 Ven 4 Jan - 16:45

matrefeytontias a écrit:Hem ... O_o'

J'ai déjà fait des jeux avec de la gravité (même plusieurs gravités -> Gravity Walls en a 4) j'ai jamais eu besoin de tout ça ... Franchement je trouve que sur calculatrice ce problème de précision ne sert à rien puisque les pixels sont gros comme mon poing fermé.

Ce que j'ai toujours fait et fais toujours, c'est ça :
Code:
Xspeed+X->X
Yspeed+X->X
Et on dirige (X/Y)speed avec les flèches.

Pour s'approcher de la réalité, on dit que Xspeed veut toujours valoir 0 et Yspeed veut toujours augmenter. C'est normal puisque la friction de l'air et du sol freine l'objet soumis à ces deux variables, et quand on tombe, on accélère.
Ben c'est ce qu'on a dit : la méthode d'Euler.
mdr1
mdr1
Or 1
Or 1

Sexe : Masculin
Age : 34
Messages : 124
Date d'inscription : 16/03/2011
Points Forum : 4
Points Concours : 0
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic Nspire
  • - Ndless Nspire
Calculatrices :
  • - TI-82
  • - TI-83+
  • - TI-84 Pocket.fr
  • - TI-Nspire CX

TI-84 Pocket.fr


Revenir en haut Aller en bas

Programmation usuelle. Empty Re: Programmation usuelle.

Message par matrefeytontias Ven 4 Jan - 16:47

Oui mais j'ai déjà vu des implémentations plus compliquées. Là j'en propose une (très) simple.
matrefeytontias
matrefeytontias
Platinum 1
Platinum 1

Sexe : Masculin
Age : 26
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - Lua Nspire
  • - Ndless Nspire
Calculatrices :
  • - TI-83+.fr
  • - TI-Nspire CAS

TI-83+.fr


Revenir en haut Aller en bas

Programmation usuelle. Empty Re: Programmation usuelle.

Message par nikitouzz Ven 4 Jan - 18:27

Merci c'est tout ce qu'il me fallait Content merci a vous
nikitouzz
nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 28
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :
  • - TI-Basic Z80
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic 68K
  • - TI-Basic Nspire
Calculatrices :
  • - TI-73
  • - TI-76.fr
  • - TI-82 Stats.fr
  • - TI-83+
  • - TI-84+
  • - TI-92
  • - TI-Nspire
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

Programmation usuelle. Empty Re: Programmation usuelle.

Message par kindermoumoute Lun 7 Jan - 20:48

Pourquoi faire simple quand on peut faire compliqué ? Clin Oeil
kindermoumoute
kindermoumoute
Or 4
Or 4

Sexe : Masculin
Age : 30
Messages : 797
Date d'inscription : 07/10/2010
Points Forum : 21
Points Concours : 1
Langages :
  • - TI-Basic Z80
  • - Axe Parser
Calculatrices :
  • - TI-83+

TI-83+


Revenir en haut Aller en bas

Programmation usuelle. Empty Re: Programmation usuelle.

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum