Comment calculer un déplacement?
Fermé
H0gS
Messages postés
266
Date d'inscription
dimanche 2 décembre 2007
Statut
Contributeur
Dernière intervention
10 septembre 2012
-
26 oct. 2011 à 23:31
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 27 oct. 2011 à 14:23
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 27 oct. 2011 à 14:23
A voir également:
- Comment calculer un déplacement?
- Comment calculer la moyenne sur excel - Guide
- Historique déplacement google - Guide
- Comment déplacer une colonne sur excel - Guide
- Barbara veut calculer automatiquement son budget dans un tableau. citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum Excel
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe. elle a commencé à la main, mais elle voudrait le faire calculer à l'aide d'une formule. proposez une formule comportant une seule fonction et à recopier vers le bas dans la colonne a du fichier à télécharger. quelle formule sera en a9 ? ✓ - Forum Programmation
2 réponses
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
26 oct. 2011 à 23:58
26 oct. 2011 à 23:58
Je ne vois pas pourquoi tu calcules Y avec une rotation...
Si tu prends ta position réelle (m_posX,m_posY,m_posZ) ton move pourrait être :
Evidemment sur ton écran tu ne peux pas avoir de la 3D, donc tu dois prendre en compte ta position sur Z, pour le calcule de affX, et affY. Par exemple :
Si tu prends ta position réelle (m_posX,m_posY,m_posZ) ton move pourrait être :
void Player::Move(bool front, bool back, bool left, bool right, bool bottom, bool top, float elapsedTime) { m_posX += ((left ? -1.f : 0.f) + (right ? 1.f : 0.f)) * elapsedTime; m_posY += ((bottom ? -1.f : 0.f) + (top ? 1.f : 0.f)) * elapsedTime; m_posZ += ((back ? -1.f : 0.f) + (front ? 1.f : 0.f)) * elapsedTime; }
Evidemment sur ton écran tu ne peux pas avoir de la 3D, donc tu dois prendre en compte ta position sur Z, pour le calcule de affX, et affY. Par exemple :
float tmpZ = m_posZ/sqrt(2); affX = m_posX - tmpZ; affY = m_posY - tmpZ; plot2d(affX,affY); // peu importe le nom de ta fonction d'affichage
H0gS
Messages postés
266
Date d'inscription
dimanche 2 décembre 2007
Statut
Contributeur
Dernière intervention
10 septembre 2012
36
27 oct. 2011 à 02:15
27 oct. 2011 à 02:15
Attention... Je ne veut pas que le joueur puisse se déplacer sur les trois axes. Seulement en x et en z.
Vous pouvez le voir comme un jeu FPS.
Vous pouvez le voir comme un jeu FPS.
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
27 oct. 2011 à 14:23
27 oct. 2011 à 14:23
J'ai rajouté bottom/top pour être plus général, mais tu peux les enlever ou toujours les mettre à false, ça ne change pas grand chose. Ton m_posy sera donc constant, contrairement à l'affichage en affY qui lui va être modifié vu qu'il dépend de z.