C# Keydown - Up and down

marivuko

Cadet 3rd Year
Registriert
Mai 2013
Beiträge
48
Hallo,

habe hier ein kleines Objekt programmiert, es soll auf Tastendruck (rechts, links, hoch und runter) sich bewegen.
aber irgendwie bewegt sich das Objekt nur nach rechts und links.
ich weiß leider nicht wie ich das umschreiben soll ... es stimmt alles nur beim Timer fehlt was ;(

Code:
public partial class Form1 : Form
    {
        bool right;
        bool left;
        bool hoch;
        bool runter;
      

        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (right == true) { player.Left += 5; }
            if (left == true) { player.Left -= 5; }
            
            
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Right) { right = true; }
            if (e.KeyCode == Keys.Left) { left = true; }
            if (e.KeyCode == Keys.Up) { hoch = true; }
            if (e.KeyCode == Keys.Down) { runter = true; }

        }

        private void Form1_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Right) { right = false; }
            if (e.KeyCode == Keys.Left) { left = false; }
            if (e.KeyCode == Keys.Up) { hoch = false; }
            if (e.KeyCode == Keys.Down) { runter = false; }
        }
    }
}
 
Im Tick event werden ja auch nur left und right ausgewertet. Analog dazu musst du mir eben noch hoch und runter beachten.
 
wenn ich player.Down += 5;
und player.Down -= 5;

eingebe dann funktioniert das nicht :(
 
Was ist "player" überhaupt? Nirgendwo gibts ne Deklaration dazu.
 
player ist meine Picturebox die sich auf Anweisung eigentlich bewegen sollte
 
Ah ok. Da gibts auch keine Up- oder Down-Property. Für die Positionierung ist da Top zuständig, analog zu Left. Stell dir das Koordinatensystem vor. Alternativ die Property Location verändern.
 
Zurück
Oben