Laden...

Taste blockieren wenn andere gedrückt ist?

Erstellt von cemolade vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.378 Views
Hinweis von gfoidl vor 12 Jahren

Abgeteilt von Spiel: Kollisionsprüfung mit Rectangle

C
cemolade Themenstarter:in
31 Beiträge seit 2010
vor 12 Jahren

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; }
                    }
G
538 Beiträge seit 2008
vor 12 Jahren

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)

C
cemolade Themenstarter:in
31 Beiträge seit 2010
vor 12 Jahren

Nein, ist es nicht. Ich brauche es so 😃
Weiß jemand, wie das funktioniert?

5.657 Beiträge seit 2006
vor 12 Jahren

mit else if anstatt if

Weeks of programming can save you hours of planning

C
cemolade Themenstarter:in
31 Beiträge seit 2010
vor 12 Jahren

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; }
                    }
6.911 Beiträge seit 2009
vor 12 Jahren

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!"