Jeu de l'ennemi se déplacer vers le joueur

Je suis en train de créer un jeu en c++ et OpenGL et souhaitez un ennemi à se déplacer vers le joueur.

Quelle est la meilleure méthode pour faire des objets de jeu évoluer vers d'autres objets du jeu, qui fonctionne à la fois en 2D et en 3D des environnements de jeu?

Mise à JOUR:

wow merci à tous pour les réponses rapides!

assez étrangement, j'ai réussi à obtenir que cela fonctionne juste comme je l'ai posté il

bien que, pour une raison que j'ai de multiplier les valeurs de x en plus de les amener à se déplacer aussi vite que la direction y.

quelqu'un a une idée pourquoi? ou si ce que je fais est mauvais/mauvaise

float playerX = player.getXPos();
float playerY = player.getYPos();
float enemyX = XPos-*xscroll;
float enemyY = YPos-*yscroll;

glPushMatrix();

glTranslatef(enemyX, enemyY, 0.0);
glColor3f(1.0,0.0,0.0);
    glBegin(GL_POLYGON);
        glVertex2f(-40,40);
        glVertex2f(-40,-40);
        glVertex2f(40,-40);
        glVertex2f(40,40);
    glEnd();

glPopMatrix();


float xDistance = abs(playerX-enemyX);
float yDistance = abs(playerY-enemyY);

if((playerX - enemyX)*(playerX - enemyX)+(playerY - enemyY)*(playerY - enemyY) < 400*400){
    float heading = asin(xDistance/yDistance);

    if(playerY > enemyY){
        YPos += timeFactor*(200*(sin((90+heading)*(PI/180.0f))));
    }else{
        YPos += -(timeFactor*(200*(sin((90+heading)*(PI/180.0f)))));
    }

    if(playerX > enemyX){
        XPos += -(timeFactor*(10000*(cos((90+heading)*(PI/180.0f)))));
    }else{
        XPos += timeFactor*(10000*(cos((90+heading)*(PI/180.0f))));
    }
}
+1. Dites à l'ennemi, "vous Voyez cette ligne? Déplacer vers le bas."
Application libérale de maths.
Comment faire de l'encodage de mouvement dans votre jeu de structures de données représentant la simulation de l'univers?
Il est beaucoup plus facile de tirer sur les ennemis qui viennent directement à vous...

OriginalL'auteur Chris | 2010-04-12