2010-09-10 4 views
1

Donc, je suis en train d'essayer de faire le jeu Asteroids pour une classe. Le problème est, je n'ai pas fait de codage depuis environ 3/4ème d'une année depuis la dernière fois que j'ai eu la classe et j'ai oublié presque tout ce que j'ai appris. Je dois déplacer le bateau en utilisant la poussée/l'accélération, mais aussi le boucher, et avoir de la friction de sorte que lorsque la poussée s'arrête, le bateau ralentisse au lieu de s'arrêter immédiatement. J'ai les calculs de base ci-dessous pour faire tourner et accélérer le navire. Je suis tout à fait conscient que la programmation divise le problème en étapes simples, le problème vient ici où je ne sais pas où aller ensuite. Toute aide serait très appréciée.Faire des astéroïdes jeu en C#

// Ship's starting position 
    static double positionX = 500.0; 
    static double positionY = 500.0; 
    // Calculate ship heading vectors based on current orientation in Radians 
    static double orientationInRadians; 
    static double xVector = Math.Sin(orientationInRadians); 
    static double yVector = Math.Cos(orientationInRadians); 
    /*Use Left and Right arrows to rotate 
    Once vector is found, 
    calculate position of ship 10 units away from current position along heading vector 
    scale vector to a unit (length of 1) vector*/ 
    static double magnitude = Math.Sqrt(xVector * xVector + yVector * yVector); 
    static double unitVectorX = xVector/magnitude; 
    static double unitVectorY = yVector/magnitude; 
    /*Now that the vector is one unit long 
    but still points in the ships current orientation 
    move ship with positionX and positionY as its current coordinates*/ 
    static double distanceToTravel = 10.0; 
    double newPositionX = positionX + unitVectorX * distanceToTravel; 
    double newPositionY = positionY + unitVectorY * distanceToTravel; 
    /*Remember to track the ship's current position with a double or float 
    and make distanceToTravel non-constant for acceleration instead of "jumps"*/ 

EDIT: J'ai oublié de mentionner, c'est le seul code que j'ai. Donc, je suis fondamentalement coincé avec un moteur pour déplacer quelque chose avec rien à bouger.

+0

:: grumble :: Dans les astéroïdes, le vaisseau * ne ralentit pas * nous éteignons le moteur. Obtenir cette physique * juste * était l'un de ses charmes. Et quitte ma pelouse! – dmckee

+0

BTW-- Cette question est susceptible d'être fermée comme "pas réel". Plus ou moins parce que vous n'avez pas ** une ** question, mais plutôt un projet entier et ne savez pas vraiment par où commencer. Vous devriez probablement définir un certain nombre de petits objectifs et travailler dessus. Ensuite, posez ici des questions * spécifiques * lorsque vous êtes bloqué. Buts possibles: + Ouvrir une fenêtre sur l'écran + Dessiner le "navire" droit et centré dans la fenêtre + Dessiner le navire à n'importe quelle position et orientation + Effacer le navire et redessiner à une position de mise à jour et orientation + Faire le bateau suivre vos commandes. .. – dmckee

Répondre

Questions connexes