|
You last visited: Today at 09:50
Advertisement
C++ Pfeiltasten Steuerung, wie?
Discussion on C++ Pfeiltasten Steuerung, wie? within the C/C++ forum part of the Coders Den category.
04/01/2013, 12:11
|
#1
|
elite*gold: 0
Join Date: Jun 2009
Posts: 216
Received Thanks: 31
|
C++ Pfeiltasten Steuerung, wie?
Hallo zusammen,
Ich versuche mich gerade daran ein kleines Spiel zu schreiben... Zu meinem Problem, was eigentlich ganz Simple ist.
Ich will einen Button nach links, bzw. rechts steuern. Egal ob mit den Pfeiltasten oder WASD etc.
Ich habe ein KeyDown Ereignis angelegt und das ganze funktioniert auch schon mit den Standard Tasten von c++, also Space/Esc. Nun will ich, wie gesagt aber eigene Tasten verwenden. Wie ?
Habe natürlich auch schon gegoogelt, finde aber nur für mich unverständliches Zeug.
Das passiert bisher:
Code:
private: System::Void button1_KeyDown(System::Object^ sender, System::Windows::Forms::KeyEventArgs^ e)
{
x=x+10;
this->button1->Location = System::Drawing::Point(x, y);
}
Nun will ich, dass diese Aktion nur Auftritt wenn ich z.b. die Rechte Pfeiltaste drücke, also VK_RIGHT, soweit ich das verstanden habe.
Ziemlich banales Problem...
Danke schön
|
|
|
04/01/2013, 13:31
|
#2
|
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
|
Also erstmal ist das C++/CLI, was kompletter Schwachsinn ist.
Hab dir mal nen Lösungsansatz in C# geschrieben, sollte leicht
in C++/CLI zu übersetzten sein.
Code:
private void KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Right)
{
//Do Stuff
}
}
|
|
|
04/01/2013, 13:33
|
#3
|
elite*gold: 0
Join Date: Jan 2011
Posts: 362
Received Thanks: 41
|
Sagen wir mal du hast n array feld [10][10] groß , dann deklarierst du einfach das zB beim tastendruck W das Y feld um eins gesenkt wird damit zb die figur oder sonst was hoch geht. für den rest genauso nur halt x achse + oder -1 weißt wie ich das mein?^^
Beispiel figur steht auf feld [4][3], du drückst W , nun steht die figur auf [3][3] , du drückst D und die figur geht nach [3][4]
|
|
|
04/01/2013, 13:45
|
#4
|
elite*gold: 0
Join Date: Jun 2009
Posts: 216
Received Thanks: 31
|
Der Bewegungsablauf ist für mich schon verständlich, ich frage mich nur wie ich den Button die eigentliche Bewegung ausführen lassen soll, also mit was für einem Befehl.
Und, Rullx3...Das wäre eine möglichkeit, aber ohne Array ?,Ich will nur, dass sich der Button, wenn ich z.B D drücke 10 Pixel nach rechts verschoben wird, beim wiederholten drücken nochmal. Das geht ja im momment schon, nur eben mit der Leertaste, was ich ja nicht will.
Skynet´s lösung in C++ formuliert geht auch nicht. Da passiert garnichts. Wenigstens kein Error.
Code:
private: System::Void button1_KeyDown(System::Object^ sender, System::Windows::Forms::KeyEventArgs^ e)
{
if(e->KeyCode == Keys::Right)
{
x=x+10;
this->button1->Location = System::Drawing::Point(x, y);
}
}
|
|
|
04/01/2013, 14:36
|
#5
|
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
|
Hast du das Event irgendwo "registriert"? Von wo soll das Framework wissen, welche Methode aufgerufen werden soll?
Und das ist _kein_ C++. Das ist C++/CLI aka Dünnschiss. Benutz C#.
|
|
|
04/01/2013, 14:59
|
#6
|
elite*gold: 0
Join Date: Jun 2009
Posts: 216
Received Thanks: 31
|
Visual Studio eben, bekommen wir von der Schule so bereit gestellt.
Wenn der Befehl nicht bekannt wäre, würde Visual Studio dann nicht eine Fehlermeldung ausgeben.(?)
Ich hab es jetzt noch so versucht, was aber auch nicht geht:
Code:
#include "Windows.h"
.
.
.
int GetAsyncKeyState(int VirtualKeyCode)
if (GetAsyncKeyState(VK_LEFT) !=0)
{
//DoThings
}
|
|
|
04/01/2013, 17:30
|
#7
|
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
|
Quote:
Originally Posted by chaoswurm
Visual Studio eben, bekommen wir von der Schule so bereit gestellt.
Wenn der Befehl nicht bekannt wäre, würde Visual Studio dann nicht eine Fehlermeldung ausgeben.(?)
Ich hab es jetzt noch so versucht, was aber auch nicht geht:
Code:
#include "Windows.h"
.
.
.
int GetAsyncKeyState(int VirtualKeyCode)
if (GetAsyncKeyState(VK_LEFT) !=0)
{
//DoThings
}
|
Dieses herumprobieren bringt dich nicht weiter, lern die
Sprache oder lass es sein...
btw:
|
|
|
04/01/2013, 17:42
|
#8
|
elite*gold: 0
Join Date: Jun 2009
Posts: 216
Received Thanks: 31
|
Was denkst du, was ich gerade Versuche... Ist nur etwas schwer was zu lernen, wenn man keine gescheite Antwort bekommt!
Ich weis nicht wie ich C++ sage, was VK_KEY ist... bzw. wie auch immer ich das verwende, also falls noch jemand eine Antwort hat. danke
|
|
|
|
Similar Threads
|
Pfeiltasten temporär verlegen
05/21/2013 - Technical Support - 11 Replies
Guten Abend ihr,
wollte mal fragen, ob mir jemand fix sagen kann, ob es die Möglichkeit gibt, die Pfeiltasten auf WASD zu legen. Brauche das nur für ein Spiel.
MFG
|
Problem mit Hack und Pfeiltasten
11/29/2011 - WarRock - 5 Replies
Ich hab nun mehrere Hacks ausprobiert aber jedes mal starte der Hack auch aber ich kann erst nah mehrmaligem drücken einen Hack aktivieren oder runter gehen !!! ( Windows Xp)
Bitte um Hilfe !!!
|
KeyCode für Pfeiltasten down ?
11/12/2011 - AutoIt - 18 Replies
Hallo alle zusammen,
ich benutze die PostMessage UDF von KillderDeluxe und brauchte zum ersten mal
{Left down},{Right down},{Up down},{Down down},{Left up},{Right up},{Up up} & {Down up}. Leider gibt es die Codes dafür nicht in der KeyCodes UDF die ebenfals von KillerDeluxe ist. Ich habe auch in der standartmäßigen Constants UDF geschaut da ist auch nix. Bin verzweifelt könnt ihr mir helfen ?
|
Autoit Bot Pfeiltasten
03/19/2011 - AutoIt - 2 Replies
Hey Leute
Hoffe das ist hier der richtige bereich um so welche frage zu stellen^^
Also Ich suche einen Autoit Bot code
Der die ganze zeit die Pfeiltasten nach links und dann nach Rechts drückt
immer in so halbe Sekunde abstand
Aber er soll Nie aufhören
Am besten weg so F3 bot starten F4 stop
|
Pfeiltasten bei Autoit
09/17/2009 - AutoIt - 19 Replies
Hallo com,
ich bin gerade dabei nen kleinen Bot zu coden und habe dabei ein prob
ich muss die pfeiltasten benutzen.
Leider weis ich nicht welchen Befehl ich nehmen muss.....
könnt ihr mir helfen?
wäre echt nett :D
|
All times are GMT +2. The time now is 09:50.
|
|