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 2 von 4     12 34      
Benutzerbild von inherited
inherited

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

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

  Alt 22. Jan 2007, 18:11
Ja, Sorry, ich hab mich da in der Schnelle vertippt.
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
 
#12

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

  Alt 22. Jan 2007, 18:14
ich dummerchen. trotzdem geht es auch richtig geschrieben nicht.
und ich hab es doch so gemacht, wie ihr es mir gesagt habt.

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if GetAsyncKeyState(vk_left)<0 then
    walk(1)
  if GetAsyncKeyState(vk_right)<0 then
    walk(3);
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Timer1.Enabled:=true;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Timer1.Enabled:=false;
end;
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

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

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

  Alt 22. Jan 2007, 18:17
wegen getasync... kannst du das KEyDown und KeyUp weglassen und einfach den Timerenabled auf true setzen solange das Image sich bewegen soll.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
1ceman

Registriert seit: 16. Dez 2005
Ort: Odenthal
134 Beiträge
 
Delphi 6 Personal
 
#14

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

  Alt 22. Jan 2007, 18:20
mach doch einfach 2 timer, einen für links und einen für rechts.
dann überprüfst du im FormKeyDown ob die linke oder die rechte pfeiltaste gedrückt wird und startest
dann den timer für links oder rechts.
Roman
  Mit Zitat antworten Zitat
Klaus01

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

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

  Alt 22. Jan 2007, 18:33
- war mumpitz -> gelöscht

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

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

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

  Alt 22. Jan 2007, 19:16
Zitat von 1ceman:
mach doch einfach 2 timer, einen für links und einen für rechts.
dann überprüfst du im FormKeyDown ob die linke oder die rechte pfeiltaste gedrückt wird und startest
dann den timer für links oder rechts.
Und was soll das bringen?
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
 
#17

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

  Alt 22. Jan 2007, 19:37
Ich hab jetzt 2 Timer eingebaut. Also zumindestens bewegt sich die Figur!
Aber ohne das ich eine Taste drücke und nur nach rechts.
Ich hab auch das Intervall des Timers auf 200 gestellt , damit es flüssig wirkt und dafür die Schrittgröße verkleinert.
(Schrittgröße = Pixelzahl die das bild bei der procedure walk verschoben wird)

also hier ist der neue Quelltext, der mir neue rätsel aufweißt.

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  walk(1);
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
  walk(3)
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if GetAsyncKeyState(vk_left)<0 then
    Timer1.Enabled:=true;
  if GetAsyncKeyState(vk_right)<0 then
    Timer2.enabled:=true;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if GetAsyncKeyState(vk_left)<0 then
    Timer1.Enabled:=false;
  if GetAsyncKeyState(vk_right)<0 then
    Timer2.Enabled:=false;
end;
bei der gelegenheit könnte mir vllt auch jemand erklären, was die function getasynckeystate bewirkt.
das raffe ich nicht so ganz?

aber schon mal danke für euere unterstützung
grüße der flo
  Mit Zitat antworten Zitat
Benutzerbild von zecke
zecke

Registriert seit: 17. Jan 2004
494 Beiträge
 
Turbo Delphi für Win32
 
#18

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

  Alt 22. Jan 2007, 19:40
Wenn sie sich bewegt bevor Du was machst, hast du wahrscheinlich vergessen die Timer von Haus aus, auf false zu setzen (im OI, Enabled:=false)
mfg zecke
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

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

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

  Alt 22. Jan 2007, 19:44
Nein...
So war das nicht gemeint. laso:
GetAsyncKeystate liefert dir in DEM MOMENT wo du es abfragst, ob gerade in diesem Moment die Taste gedrückt ist. Dann brauchst du also keinen Timer mehr für die Bewegung, sondern nur einen Timer in dem du mit GetAsyncKeystate abfragst, ob grad die nach-links-taste gedrückt ist oder nicht.

Um flori-da noch einmal zu zitieren:
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;
Das kommt in einen Timer, der ständig mit einem Interval von ca. 200 ms aktiv ist. Der überprüft dann alle 200 ms ob gerade die nach links taste oder die nach rehctsteste gedrückt ist und macht dann dies und jenes
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

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

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

  Alt 22. Jan 2007, 19:47
Zitat von flori-da:
bei der gelegenheit könnte mir vllt auch jemand erklären, was die function getasynckeystate bewirkt.
das raffe ich nicht so ganz?
MSDN: GetAsyncKeyState
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 00:27 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