Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
08.12.2001, 17:27
shenZi



wie belege ich in delphi ne taste?
(is fürn kleines autorennspiel)
bisher hzab ich nen button genommen und per shortcut dann das auto oben unten links rechts bewegt,is aber nicht sehr befriedigend, vor allem beim 2player modus,wenn einer gedrückt hält bewegt sich das auto vom anderen nicht mehr
...
:-)

--

..::Follow the rabbit ::..

zum Seitenanfang zum Seitenende Profil || Suche
001
08.12.2001, 18:07
Retro



Quellcode:procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Key = VK_LEFT) then
    MoveLeft();
  if (Key = VK_RIGHT) then
    MoveRight();
  if (Key = VK_UP) then
    Accelerate();
  if (Key = VK_DOWN) then
    SlowDown();
end;
Währe die einfachste Lösung, weis aber nicht ob das so gut fürn Spiel ist, da das Auto ja dauerhaft nach Links fahren soll solange man die Taste drückt, würd ich die Tasten in ner globalen Schleife abfragen...

Die ganzen Tastennamen stehen in der Onlinehilfe, gibt einfach mal VK_ ein:)

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
002
08.12.2001, 18:08
Retro



Quellcode:procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Key = VK_LEFT) then
    MoveLeft();
  if (Key = VK_RIGHT) then
    MoveRight();
  if (Key = VK_UP) then
    Accelerate();
  if (Key = VK_DOWN) then
    SlowDown();
end;
Währe die einfachste Lösung, weis aber nicht ob das so gut fürn Spiel ist, da das Auto ja dauerhaft nach Links fahren soll solange man die Taste drückt, würd ich die Tasten in ner globalen Schleife abfragen...

Die ganzen Tastennamen stehen in der Onlinehilfe, gibt einfach mal VK_ ein:)

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
003
08.12.2001, 18:51
Another1



ich würd einfach nen main loop (mit TTimer od was auch immer) machen und da drinne immer prüfen:

hier die function um zu testen ob ne taste gedrückt ist
Quellcode:
function IsKeyPressed(key: word): boolean;
begin
   if ((GetAsyncKeyState(key) AND $8000) > 0)then
        IsKeyPressed := true
   else
        IsKeyPressed := false;
end;

dann kannst du im Loop das damit einfach so prüfen:
Quellcode:
if IsKeyPressed(VK_LEFT) then
begin
   MoveCarLeft;
  ...
end;

if IsKeyPressed(VK_RIGHT) then
begin
   MoveCarRight;
  ...
end;
...

have fun

--

Another1

...relaxing..atm =)
... und Schweiz suckt!


Dieser Beitrag wurde am 08.12.2001 um 18:51 von Another1 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
08.12.2001, 19:12
shenZi



kk vielen dank

--

..::Follow the rabbit ::..

zum Seitenanfang zum Seitenende Profil || Suche