Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Invaders Spielfigur Stoppen
Petra1971
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

Invaders Spielfigur Stoppen

beantworten | zitieren | melden

Hi ich hoffe ich bin jetzt im richtigen Forumsteil :-D

Ich hab ein youtubetutorial für SpaceInvaders durchprogrammiert.

Problem ist folgendes ... meine Spielfigur fährt links und rechts über den Rand hinaus, und wird auch ausserhalb des Spielfeldes erschossen

Das sind die Steuerungen von der Figur. Wie kann ich sie stoppen? ich weiss wie ich die gegner umleiten kann, aber die fliegen ja von selber.
Mal bitte wer den Knopf in meinem Hirn auflöse!!



  private void KeyIsDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Left)
            {
                GoLeft = true;
            }
            if (e.KeyCode == Keys.Right)
            {
                GoRight = true;
            }

[color][b]hier käme dann m.E rein, wenn du am linken Rand bist stoppe. wenn du am rechten rand bist stoppe.[/b] [/color]

        }

        private void KeyIsUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Left)
            {
                GoLeft = false;
            }
            if (e.KeyCode == Keys.Right)
            {
                GoRight = false;
private Nachricht | Beiträge des Benutzers
Urza
myCSharp.de - Member



Dabei seit:
Beiträge: 67

beantworten | zitieren | melden

Welches Tutorial hast du denn benutzt?
Als erste Treffer finde ich welche von mooict.
Da gibt es auch einen Link zu einem schriftlichen Tutorial. Bspw.
Dort wird die Begrenzung nach Rechts/Links durch die gameEngine begrenzt. In den Handlern für KeyIsUp/KeyIsDown werden tatsächlich nur die Variablen gesetzt.


            if (goLeft && Canvas.GetLeft(player1) > 0)
            {
                Canvas.SetLeft(player1, Canvas.GetLeft(player1) - 10);
            }
“Knowledge cannot replace friendship. I'd rather be an idiot than lose you.”

- Patrick to Spongebob
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #nZo9Gyth4VPDSxGqM4sT.jpg


Dabei seit:
Beiträge: 3795
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden


Das Stoppen der Spielfigur machst Du nicht in der Verarbeitung der Tasteneingaben, sondern in der Bewegung.

Es kann ja sein dass er sich 10 Mal nach rechts bewegen kann und beim 11. Mal an eine Wand stößt.

Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
private Nachricht | Beiträge des Benutzers
Petra1971
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

mooict

beantworten | zitieren | melden

ja. es war das tutorial von mooict genauer gesagt dieses https://www.mooict.com/c-tutorial-create-a-full-space-invaders-game-using-visual-studio/

bei der schriftlichen Anleitung ist aber nur ein kleiner teil herausgegriffen. Danke für den Tipp erstmal

lg Petra
private Nachricht | Beiträge des Benutzers
Urza
myCSharp.de - Member



Dabei seit:
Beiträge: 67

beantworten | zitieren | melden

Wenn du das Tutorial verwendet hast, dann wirst du auch irgendwo die Methode mainGameTimerEvent oder timer1_Tick haben.
Das könntest du dann in etwa so anpassen (feintuning noch nötig!)


            if (goLeft)
            {
                if (player.Bounds.Left ≥ playerSpeed)
                    player.Left -= playerSpeed;
            }

            if (goRight)
            {
                if (player.Bounds.Right + playerSpeed ≤ Bounds.Width)
                    player.Left += playerSpeed;
            }
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Urza am .
“Knowledge cannot replace friendship. I'd rather be an idiot than lose you.”

- Patrick to Spongebob
private Nachricht | Beiträge des Benutzers