begin process at 2012 05 30 16:42:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Rotation et origine


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Rotation et origine

samedi 20 novembre 2004 à 22:22:16 | Rotation et origine

goutbouyo

Membre Club
Salut,

Salut,
Je veut faire une fonction réseau sur mon jeu, donc il faut que je représente les persos ennemies.

Pour cela, je prends les coordonnés et jusque là tout va bien.
Mais il faut aussi je tienne compte de leur direction de vision, et pour celà je fait comme ça :


double aX=g_Camera.m_vView.x-g_Camera.m_vPosition.x;
double aZ=g_Camera.m_vView.z-g_Camera.m_vPosition.z;
double angle = atan(aZ/aX);
int angle2=(180*angle)/PI;

glPushMatrix();
glRotatef(angle2,0,1,0);

Z=strtol(ClientZ,NULL,0);
X=strtol(ClientX,NULL,0);

//je fais un test avec un carré pour l'instant
glBegin(GL_QUADS);
glTexCoord2i(0, 1); glVertex3f(X-10, 1,Z);
glTexCoord2i(0, 0); glVertex3f(X-10, 8,Z);
glTexCoord2i(1, 0); glVertex3f(X+10, 8,Z);
glTexCoord2i(1, 1); glVertex3f(X+10, 1,Z);
glEnd();

glPopMatrix();


Donc voila, ça marche bien, mais le problème c'est que la rotation se fait par rapport à l'origine du repère(donc ici 0) mais si mon perso ennemie est pas en 0, ça ne va plus du tout !!!

Comment faire pour changer les origines du repères SVP ???
dimanche 21 novembre 2004 à 16:40:22 | Re : Rotation et origine

Arnaud16022

Membre Club
une fonction réseau!!!!
nan mais goutbouyo faut pas avoir les yeux plus gros que la tete si j'ose dire.

bon dee toute facon pour les rotations, il faut d'abord que tu translates ton perso en 0,0,0, puis que tu fasses ta rotation, puis que tu le refoutes a sa pos d'origine.

je ne comprend pas bien ce que ton code fait, ni le sens général de tout ce qui ce trouve avant le bout de code.

ou alors, si j'ai bien compris, ce n'est pas sur, mets ton rotate apres le translate.
dimanche 21 novembre 2004 à 17:17:05 | Re : Rotation et origine

goutbouyo

Membre Club
LOL !!!
Je fais juste une petite fonction pour réseau local ...
Je compte pas faire un counter strike !!!

En fait c'est bon j'ai réussi, en effet il fallait le replacer en 0 avant de faire la rotation.

Pour l'instant le réseau marche pas mal sauf que j'ai un décalage d'une seconde entre les 2 ordis ...
dimanche 21 novembre 2004 à 17:59:25 | Re : Rotation et origine

Arnaud16022

Membre Club
ha oui ca c'est embetant ;)

mais qd meme ton trtuc m'embete.
Tu devrais faire ca:
glRotatef(perso.angle,0,1,0);
pour choisir sa direction;
glTranslatef(perso.pos.x,perso.pos.y,perso.pos.z);
pour sa position
et puis dessiner le perso en (0,0,0).
sinon tu vas pas t'en sortir, peut etrre que ca parche avec uun carré mais avec un md2 tu va galérer je pense.
dimanche 21 novembre 2004 à 18:35:38 | Re : Rotation et origine

goutbouyo

Membre Club
Oui t'as raison.
Mais en fait depusi j'ai fait des modifs et ça donne ça :

glTranslatef(X,10,Z);
glRotatef(anglef,0,1,0);

Pour l'instant je gère qu'un perso ennemie donc ça va ...
dimanche 21 novembre 2004 à 18:37:00 | Re : Rotation et origine

goutbouyo

Membre Club
Au fait, maintenant y a plus de décalage, et j'ai mis un MD2.
Pas de problème, mais va falloir que je gère les animations maintenant ...
dimanche 21 novembre 2004 à 20:26:05 | Re : Rotation et origine

Arnaud16022

Membre Club
mais ca n'était pas déja fait tout ca?
dimanche 21 novembre 2004 à 23:17:57 | Re : Rotation et origine

goutbouyo

Membre Club
Qu'est ce qui était déjà fais ???

T'aurais pas une idée pour les animations de MD2 ???

En fait si le perso ennemi bouge je le fais courrir et s'il bouge pas je le rend immobile.

J'ai essayer d'enregistrer à chaque affichage la valeur X et Z du l'ennemie dans XOld et ZOld, ensuite si XOld=X alors ça veut idre qu'il bouge pas, donc je met l'anim immobile.

Le problème c'est que ça marche pas ...
mardi 23 novembre 2004 à 20:06:06 | Re : Rotation et origine

Arnaud16022

Membre Club
Aie!
"si XOld=X alors ça veut idre qu'il bouge pas, donc je met l'anim immobile."
ben non!
tes persos décrivent un carré, donc sur 2 des 4 cotés il Xold==X. il faut faire if(Xold!=X || Yold!=Y) Moveperso();
mercredi 24 novembre 2004 à 15:20:16 | Re : Rotation et origine

goutbouyo

Membre Club
EN fait j'ai réussi.
Mais comme j'envois les donnée sur le réseau, et que je les envoie pas à chaque frame il fallait mettre un petit écart pour que ça marche.

1 2

Cette discussion est classée dans : rotation, camera, glvertex3f, origine, gltexcoord2i


Répondre à ce message

Sujets en rapport avec ce message

gestion camera [ par chucky_666 ] Voila mon pb :je modelise un terrain 3D et g fixe une camera au dessus avec gluLookAt().Je me sert de la souris pour effectuer des rotation de la came Probleme de rotation [ par Mick7 ] bon voila je veux faire une camera comme dans un fps le probleme c'est que je ne sait pas comment on fait des rotation autour des axes x et y de la ca Problème : rotation d'une camera [ par bathof ] Bonjour,Je suis en train de développer un jeu 3D de type HomeWorld2,malheureusement j'ai deux trois problèmes du coté de la camera.La caméra doit être Offscreen texture rendering to bitmap [ par S3rialHoOK3rs ] Bonjour, J'essaie de créer un rendu hors écran au sein de mon application OpenGL. Pour ce faire, je stock mon rendu offscreen dans une texture que je Problème de compilation [VS] [ par Kcuftesends ] Bonjour, J'ai un gros problème de compilation au moment de l'édition des liens, j'ai épluché le net mais sans succès. J'utilise la librairie EDSDK d changement d'origine de repère [ par issamery ] Bonsoir, je dispose d'une application MFC de dessin, dont l'origine (0,0) est au centre de la fenêtre, j'aimerai les changer au coin gauche supérieur OpenCv : detection d'objets a partir d'une camera en mouvement [ par glen1789 ] Bonjour, Dans le cadre d'un stage de fin de DUT on me demande de travailler sur la detection d'objets a partir d'une camera en mouvement en utilisant Récuperer la version d'OS d'origine lorsque que l'on est sur une Machine Virtuel. [ par Mikey74 ] [^^peur]Bonjour à tous, Je recherche un moyen de connaitre la version de l'OS Microsoft d'origine lorsque le soft est lancé sur une machine virtuel . rotation d'une image pgm [ par lynx112 ] bj!!tout le monde!!! Est ce que vous pouvez m'aider pour savoir comment je peut programmer en c un code qui me permettre de faire une rotation à une OpenCV et stream (RTSP - RTMP) [ par Goretg ] Hello, je suis en train de développer un programme de détection (de choses et d'autres [^^clinoeil1]) et je dois travailler sur des flux vidéos prove


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,307 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales