pipistrello
Mitglied
Code:
private void PlayerMoves(GameTime gametime)
{
KeyboardState taste = Keyboard.GetState();
//nach Oben
if (taste.IsKeyDown(Keys.Up))
m_fYPos -= 300 * (float)gametime.ElapsedGameTime.TotalSeconds; //m_fYPos -= 5.0f;
//nach Unten
if (taste.IsKeyDown(Keys.Down))
m_fYPos += 300 * (float)gametime.ElapsedGameTime.TotalSeconds;//m_fYPos += 5.0f;
//nach Links
if (taste.IsKeyDown(Keys.Left))
{
//Spieler nach links bewegen
m_fXPos -= 300 * (float)gametime.ElapsedGameTime.TotalSeconds; //m_fXPos -= 5.0f;
//Animieren
m_fFrameNum -= 20.0f * (float)gametime.ElapsedGameTime.TotalSeconds;
}
//nach Rechts
if (taste.IsKeyDown(Keys.Right))
{
//Spieler nach rechts bewegen
m_fXPos += 300 * (float)gametime.ElapsedGameTime.TotalSeconds; //m_fXPos += 5.0f;
//Animieren
m_fFrameNum += 20.0f * (float)gametime.ElapsedGameTime.TotalSeconds;
}
//Schiessen
if (taste.IsKeyDown(Keys.Space))
{
//Neuen Schuss erstellen und Initialisieren
CShot Shot = new CShot();
Shot.Initialize(m_pSpriteShot, m_fXPos, m_fYPos);
//Schuss in die Liste einfügen
m_ShotList.Add(Shot);
//Schiessen erst wieder erlaubt, wenn SPACE losgelassen wird
//m_bShotLock = true;
}
//Schiff wird weder nach links noch nach rechts bewegt. Also zum Ausgangsframe animieren
if (taste.IsKeyUp(Keys.Left) || taste.IsKeyUp(Keys.Right))
{
if (m_fFrameNum > 5.0f)
m_fFrameNum -= 20.0f * (float)gametime.ElapsedGameTime.TotalSeconds;
if (m_fFrameNum < 5.0f)
m_fFrameNum += 20.0f * (float)gametime.ElapsedGameTime.TotalSeconds;
}
//Animationsphase überprüfen
if (m_fFrameNum < 0.0f)
m_fFrameNum = 0.0f;
else if (m_fFrameNum > 10.0f)
m_fFrameNum = 10.0f;
}
Wenn das Sprite diagonal nach oben links, unten links oder unten rechts bewegt wird, wird die if-Bedingung in Zeile 34 nicht abgearbeitet, wenn Ich die Leertaste drücke.
Bewege ich das Sprite hingegen nach oben rechts und drücke die Leertaste wird der Schuss abgefeuert.
Was ist da los *g* ?
edit :
Liegt an meiner Tastatur, steuert man das Sprite mit W,S,A,D gibts keine Probleme, mit den Pfeiltasten hingegen schon..
Zuletzt bearbeitet: