AGB  ·  Datenschutz  ·  Impressum  







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

Tastendruck erkennen zur jeder zeit

Ein Thema von Torley · begonnen am 9. Feb 2008 · letzter Beitrag vom 9. Feb 2008
Antwort Antwort
Torley

Registriert seit: 24. Jan 2008
Ort: Freudenberg
39 Beiträge
 
Delphi 6 Professional
 
#1

Tastendruck erkennen zur jeder zeit

  Alt 9. Feb 2008, 19:35
Zurzeit habe ich es in meinem projekt so realisiert das immer wenn ein timer "ausläuft" geprüft wird ob eine taste gedrückt wird:

Delphi-Quellcode:
procedure TForm1.Timer2Timer(Sender: TObject);
begin
{.....}
if GetAsyncKeystate(VK_RIGHT) < 0 then
 begin
  if ((richtung = 1)or(richtung = 3))
  then richtung:=2;
 end;
if GetAsyncKeystate(VK_LEFT) < 0 then
 begin
  if ((richtung = 1)or(richtung = 3))
  then richtung:=4;
 end;
if GetAsyncKeystate(VK_UP) < 0 then
 begin
  if ((richtung = 2)or(richtung = 4))
  then richtung:=1;
 end;
if GetAsyncKeystate(VK_DOWN) < 0 then
 begin
  if ((richtung = 2)or(richtung = 4))
  then richtung:=3;
 end;
{.....}
end;
jetzt habe ich das problem das man in meinem programm die geschwindigkeit von diesem timer selber einstellen kann! somit reagiert der timer auf tastenbefehle nur wenn er grad die befehle ausführt!
bei einem interwall von 500ms und einer durchschnittsdrückzeit von 100 ms kommt es vor das manche tastendrücke nicht beachtet werden was die spielbarkeit meines programms schwer beeinträchtigt!

im moment habe ich es so gelöst das ich diesen code in einen weiteren timer intigriert habe der alle 1ms die befehle ausführt! dabei reagiert das rpogramm an sich aber viel langsamer weil es ja jede ms prüft ob die tasten gedrückt sind!

wo genau muss ich den code einfügen das ich die timergeschichte vergessen kann! ich habe es in formpresskey probiert aber es will nicht!

torley
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Tastendruck erkennen zur jeder zeit

  Alt 9. Feb 2008, 19:38
wenn du die Tasten live mitbekommen willst nimm doch einfach die OnKeyDown- und OnKeyUp-Ereignisse. Und zu deinem Timerproblem. Wer/Was hindert dich daran mehrere Timer zu verwenden? Du musst ja nicht jeden Timer vom Benutzer einstellbar machen lassen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Torley

Registriert seit: 24. Jan 2008
Ort: Freudenberg
39 Beiträge
 
Delphi 6 Professional
 
#3

Re: Tastendruck erkennen zur jeder zeit

  Alt 9. Feb 2008, 19:46
das problem ist ja nicht das ich weniger timer benutzen will!
ich hab nur gemerkt das der timer der jede ms die tasten prüft mein spiel verlangsamt!

FormKeyDown reagiert bei mir nicht! bei spielen mit den pfeiltasten werden alle buttons immer nacheinander anvisiert! (wär mein 2tes problem aber die timergeschichte hat vorrang)
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:52 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