Hi, ich bins wieder mal
Also Ausgangsstellung meines Problemes:
Ich habe eine PictureBox in einem Panel, welche ich mit Hilfe von Buttons in diesem Panel rumbewege habe.
Nun will ich ein Level höher gehen und die PictureBox nur mit den Pfeiltasten aufder Tastatur bewegen.
Fehler:
Es wird kein Fehler vom Compiler ausgegeben. Sobald ich das Projekt kompiliere und das Objekt mit den Pfeiltasten bewegen will, geschieht nichts. Also das Programm reagiert gar nicht erst auf die Pfeiltasten.
Infos:
WinXP
VC++.Net 2003 (Form wurde im Designer erstellt)
Mein bisheriger Code:
Alles anzeigen
Kann mir hier jemand weiterhelfen?
Habe keine grosse Ahnung von diesen KeyEventArgs und Eventhandlern, ich vermute, dass ich da gepatzt habe.
Danke im voraus.
Gruss jott

Also Ausgangsstellung meines Problemes:
Ich habe eine PictureBox in einem Panel, welche ich mit Hilfe von Buttons in diesem Panel rumbewege habe.
Nun will ich ein Level höher gehen und die PictureBox nur mit den Pfeiltasten aufder Tastatur bewegen.
Fehler:
Es wird kein Fehler vom Compiler ausgegeben. Sobald ich das Projekt kompiliere und das Objekt mit den Pfeiltasten bewegen will, geschieht nichts. Also das Programm reagiert gar nicht erst auf die Pfeiltasten.
Infos:
WinXP
VC++.Net 2003 (Form wurde im Designer erstellt)
Mein bisheriger Code:
Quellcode
- private: System::Void frmGame_Load(System::Object * sender, System::EventArgs* e)
- {
- //Spieler laden
- picSpieler->Image = Image::FromFile("smiley.png");
- //Timer anhalten, weil er beim Laden der Form anfängt zu ticken :S
- gameTimer->Stop();
- //Stop-Button disablen
- btnStopTimer->Enabled = false;
- }
- private: System::Void frmGame_KeyDown(System::Object * sender, System::Windows::Forms::KeyEventArgs * f)
- {
- //Ränder des Panels deklarieren um Überschreitung zu verhindern
- int maxX = 375;
- int minX = -1;
- int maxY = 239;
- int minY = -1;
- //Hilfsvariable für Endlosschleife
- bool bolSpielen = true;
- //Spielfunktion, ermöglicht es per Pfeiltasten
- //den Spieler zu bewegen. Dazu wird eine EndlosSchleife
- //benutzt.
- do
- {
- //Location des Spielers ermitteln (Point)
- Point spielerLoc = Point(picSpieler->get_Location());
- //X- und Y-Koordinate des Spielers in Variablen speichern
- int spielerX = Convert::ToInt32(spielerLoc.get_X());
- int spielerY = Convert::ToInt32(spielerLoc.get_Y());
- switch(f->KeyCode){
- case System::Windows::Forms::Keys::Up:
- if((spielerY - 15) > minY){
- picSpieler->Location = Point(spielerX, spielerY - 15);
- }
- if((spielerY - 15) <= minY){
- }
- break;
- case System::Windows::Forms::Keys::Right:
- if((spielerX + 15) < maxX){
- picSpieler->Location = Point(spielerX + 15, spielerY);
- }
- if((spielerX + 15) >= maxX){
- }
- break;
- case System::Windows::Forms::Keys::Down:
- if((spielerY + 15) < maxY){
- picSpieler->Location = Point(spielerX, spielerY + 15);
- }
- if((spielerY + 15) >= maxY){
- }
- break;
- case System::Windows::Forms::Keys::Left:
- if((spielerX - 15) > minX){
- picSpieler->Location = Point(spielerX - 15, spielerY);
- }
- if((spielerX - 15) <= minX){
- }
- break;
- }
- }while(bolSpielen = true);
- }
Kann mir hier jemand weiterhelfen?
Habe keine grosse Ahnung von diesen KeyEventArgs und Eventhandlern, ich vermute, dass ich da gepatzt habe.
Danke im voraus.
Gruss jott