Abgeteilt von Spiel: Kollisionsprüfung mit Rectangle
Ja danke, ich habe den Fehler schon. Es war ein Fehler in der Level Klasse mit den Enums.
Nun mein 2. Problem. Wie kann ich verhindern, dass 2 Pfeiltasten-Eingaben gleichzeitig aufgenommen werden?
Habe das versucht, bringt aber nichts:
if (keyboard.IsKeyUp(Keys.Right) && keyboard.IsKeyUp(Keys.Up) && keyboard.IsKeyUp(Keys.Down))
{
if (keyboard.IsKeyDown(Keys.Left)) { pos.X -= 3; li = 1; re = 0; hi = 0; vo = 0; }
}
if (keyboard.IsKeyUp(Keys.Left) && keyboard.IsKeyUp(Keys.Up) && keyboard.IsKeyUp(Keys.Down))
{
if (keyboard.IsKeyDown(Keys.Right)) { pos.X += 3; li = 0; re = 1; hi = 0; vo = 0; }
}
if (keyboard.IsKeyUp(Keys.Right) && keyboard.IsKeyUp(Keys.Left) && keyboard.IsKeyUp(Keys.Down))
{
if (keyboard.IsKeyDown(Keys.Up)) { pos.Y -= 3; li = 0; re = 0; hi = 1; vo = 0; }
}
if (keyboard.IsKeyUp(Keys.Right) && keyboard.IsKeyUp(Keys.Up) && keyboard.IsKeyUp(Keys.Left))
{
if (keyboard.IsKeyDown(Keys.Down)) { pos.Y += 3; li = 0; re = 0; hi = 0; vo = 1; }
}
Ist es nicht "egal", wenn mehrere Tasten gleichzeitig gedrückt werden?
Solltest du dann nicht einfach alles ausführen was für diese Tasten benutzt wird?
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
Nein, ist es nicht. Ich brauche es so 😃
Weiß jemand, wie das funktioniert?
mit else if anstatt if
Weeks of programming can save you hours of planning
Funktioniert leider nicht ):
if (keyboard.IsKeyUp(Keys.Right) && keyboard.IsKeyUp(Keys.Up) && keyboard.IsKeyUp(Keys.Down))
{
if (keyboard.IsKeyDown(Keys.Left)) { pos.X -= 3; li = 1; re = 0; hi = 0; vo = 0; }
}
else if (keyboard.IsKeyUp(Keys.Left) && keyboard.IsKeyUp(Keys.Up) && keyboard.IsKeyUp(Keys.Down))
{
if (keyboard.IsKeyDown(Keys.Right)) { pos.X += 3; li = 0; re = 1; hi = 0; vo = 0; }
}
else if (keyboard.IsKeyUp(Keys.Right) && keyboard.IsKeyUp(Keys.Left) && keyboard.IsKeyUp(Keys.Down))
{
if (keyboard.IsKeyDown(Keys.Up)) { pos.Y -= 3; li = 0; re = 0; hi = 1; vo = 0; }
}
else if (keyboard.IsKeyUp(Keys.Right) && keyboard.IsKeyUp(Keys.Up) && keyboard.IsKeyUp(Keys.Left))
{
if (keyboard.IsKeyDown(Keys.Down)) { pos.Y += 3; li = 0; re = 0; hi = 0; vo = 1; }
}
Hallo cemolade,
"funktioniert nicht" ist nicht besonders aussagekräftig. Wie MrSparkle vorher schon erwähnt hat wird hier keiner den Code für dich debuggen. Bitte beachte auch [Hinweis] Wie poste ich richtig? Punkt 4.c, 5
Etwas mehr Eigeninitiave könntest du schon bringen.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"