tout le monde Hy, donc d'abord tout, voici l'image de mon sprite: mouvement sprite XNA a mal tourné
Je mis à l'échelle vers le bas dans mon jeu si son pas grand dans le jeu.
De toute façon mon résultat souhaité du code ci-dessous:
protected override void Update(GameTime gameTime)
{
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
spritePos = spriteVelocity + spritePos;
spriteR = new Rectangle((int)spritePos.X, (int)spritePos.Y, spriteT.Width, spriteT.Height);
spriteOrigin = new Vector2(spriteR.Width/2, spriteR.Height/2);
if (Keyboard.GetState().IsKeyDown(Keys.Right)) rotation += 0.1f;
if (Keyboard.GetState().IsKeyDown(Keys.Left)) rotation -= 0.1f;
if (Keyboard.GetState().IsKeyDown(Keys.Up))
{
spriteVelocity.X = (float)Math.Cos(rotation) * tangentialVelocity;
spriteVelocity.Y = (float)Math.Sin(rotation) * tangentialVelocity;
} else if (spriteVelocity != Vector2.Zero)
{
float i = spriteVelocity.X;
float j = spriteVelocity.Y;
spriteVelocity.X = i -= friction * i;
spriteVelocity.Y = j -= friction * j;
}
base.Update(gameTime);
}
puis méthode draw:
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin();
foreach(Bushes bush in bushes)
{
bush.Draw(spriteBatch);
}
player.Draw(spriteBatch);
spriteBatch.Draw(spriteT, spritePos, null, Color.White, rotation, spriteOrigin, 0.1f, SpriteEffects.None, 0f);
spriteBatch.End();
base.Draw(gameTime);
}
est que quand je presse « Up » flèche cette petite fusée devrait aller en direction il est pointé (parce que je peux le faire tourner avec les flèches Gauche et Droite pour le faire pointer), mais le résultat de ce code est que quand j'appuie sur Flèche vers le haut, le sprite se déplace vers la droite ne va pas où c'est pointu mais un peu latéral:/
Qu'est-ce que je fais mal ici?
PS. toutes les variables arent déclarées et initialisées dans le code sont des variables globales et initialisées dans les méthodes Initialize() et LoadContent():/
Merci beaucoup: D –