AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

solange taste gedrücktt tue! ???

Ein Thema von flori-da · begonnen am 22. Jan 2007 · letzter Beitrag vom 23. Jan 2007
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
flori-da

Registriert seit: 10. Jan 2007
30 Beiträge
 
Delphi 3 Professional
 
#1

solange taste gedrücktt tue! ???

  Alt 22. Jan 2007, 17:16
Hi leute..

hab mal ne kleine frage:
wie kann ich das machen, dass solange eine taste (pfeiltasten) gedrückt wird etwas gemacht wird?
z.B. solange die Pfeiltaste nach links gedrückt wird soll eine figut (TImage ) nach links laufen.

habs schon mit keydown und ner while-do-schleife probiert nud das hat nicht geklapt.

bin gespannt auf euere Antworten.
schon mal danke!
grüße flo
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: solange taste gedrücktt tue! ???

  Alt 22. Jan 2007, 17:19
Hallo,

Du könntest in dem OnKeyDown Ereignis der Form einen Thread starten und in dem OnKeyUp Ereignis
den Thread wieder stoppen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: solange taste gedrücktt tue! ???

  Alt 22. Jan 2007, 17:20
Fürs erste setzt du die Bewegung in einen TTimer.
Wenn die Taste gedrückt wird (KeyDown) setzt du TTimer.enabled auf true. Wenn KEyUp kommt auf false
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
flori-da

Registriert seit: 10. Jan 2007
30 Beiträge
 
Delphi 3 Professional
 
#4

Re: solange taste gedrücktt tue! ???

  Alt 22. Jan 2007, 17:31
das mit dem Timer hört sich gut an.
Doch wie kann ich dem Timer sagen , welche Taste ich drücke.
Also zum Beispiel: falls die linke Pfeiltaste gerade gedrückt wird dann tue das ... usw.
grüße der flo
  Mit Zitat antworten Zitat
flori-da

Registriert seit: 10. Jan 2007
30 Beiträge
 
Delphi 3 Professional
 
#5

Re: solange taste gedrücktt tue! ???

  Alt 22. Jan 2007, 17:34
P.S. außerdem weiß ich nicht , was ein thread ist > deswegen fand ich die version mit dem timer besser
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: solange taste gedrücktt tue! ???

  Alt 22. Jan 2007, 17:35
Oder du setzt das gesamte Spiel (ich nehme mal an so twas in der Arte ist es) gleich mit einem Main-Loop um (zB Timer), das ist eh besser. Dann kannst du regelmäßig mit GetAsyncKeyState die Tasten überprüfen
Diese könnte dann pseudocodemäßig so aussehen:
Delphi-Quellcode:
procedure CheckKeys;
begin
  if GetAsnycKeyState(vk_left)<0 then
    Player.MoveLeft;
  if GetAsyncKeyState(vk_right)<0 then
    Player.MoveRight
end;

procedure MainLoop;
begin
  CheckKeys;
  Render;
end;
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
flori-da

Registriert seit: 10. Jan 2007
30 Beiträge
 
Delphi 3 Professional
 
#7

Re: solange taste gedrücktt tue! ???

  Alt 22. Jan 2007, 17:43
kann ich das nicht in meinen timer einbauen?
zum beispiel so, wenn der timer "startet", enabled also true ist, dann soll er nach den key fragen der gerade gedrückt ist und in eine entsprechende richtung laufen.

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if GetAsnycKeyState(vk_left)<0 then
    Player.MoveLeft;
  if GetAsyncKeyState(vk_right)<0 then
    Player.MoveRight
  ...
end;
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: solange taste gedrücktt tue! ???

  Alt 22. Jan 2007, 17:45
dito
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
flori-da

Registriert seit: 10. Jan 2007
30 Beiträge
 
Delphi 3 Professional
 
#9

Re: solange taste gedrücktt tue! ???

  Alt 22. Jan 2007, 17:49
ok
das scheint doch nicht zu klappen.
er sagt, dass GetAsnycKeyState ein undefinierter bezeichner ist.
kann das auch an meiner delphi version liegen ( Delphi 3)??
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: solange taste gedrücktt tue! ???

  Alt 22. Jan 2007, 18:05
Zitat von flori-da:
ok
das scheint doch nicht zu klappen.
er sagt, dass GetAsnycKeyState ein undefinierter bezeichner ist.
kann das auch an meiner delphi version liegen ( Delphi 3)??
GetAsyncKeyState
Blackheart
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz