AGB  ·  Datenschutz  ·  Impressum  







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

DXINPUT FRAGE

Ein Thema von ATwardz · begonnen am 12. Nov 2003 · letzter Beitrag vom 16. Nov 2003
Antwort Antwort
Seite 2 von 2     12   
Daniel B
(Gast)

n/a Beiträge
 
#11

Re: DXINPUT FRAGE

  Alt 15. Nov 2003, 18:30
Hast Du auch KeyPreview von Form1 auf True gestellt?
  Mit Zitat antworten Zitat
Benutzerbild von Seniman
Seniman

Registriert seit: 15. Sep 2003
Ort: Münster
98 Beiträge
 
#12

Re: DXINPUT FRAGE

  Alt 15. Nov 2003, 19:01
Hallo,

ja es ist richtig. Wenn man eine Taste gedrückt hält, dann wird auch das OnKeyDown-Event wiederholt ausgeführt. Das ist aber anders als bei den DXInput.States. Beispiel: Ich halte die Taste "f" ein paar Sekunden fest:
ffffffffffffffffffffffffff
Nach dem ersten Tastendruck ist eine kleine Pause und dann kommen ganz viele "f"s. Bei jedem f würde jetzt das OnKeyDown-Event ausgeführt. Das hat allerdings nichts mit den Frames des Timers zu tun. In den meisten Fällen halte ich diese Umsetzung aber für ausreichend.
Ansonsten eine neue Idee:
Für jede Taste, um die es geht, eine Variable vom Typ boolean an. Für die Taste "Links" zum Beispiel:

Delphi-Quellcode:
var
  Form1: TForm1;
  GedrLinks: Boolean;
  // usw...

implementation
Denn setzt du ganz an den Schluss der Timer-Prozedur folgendes:
GedrLinks:= (isleft in Form1.DxInput1.States); Nun kannst du irgendwo vorher in dieser Timer-Prozedur folgendes abfragen:
if (not GedrLinks) and (isleft in Form1.DxInput1.States) then //Code D.h. in dem vorherigen Frame darf die Taste nicht gedrückt gewesen sein, aber jetzt muss sie es.

So sollte es klappen.
Grüße
Seniman
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#13

Re: DXINPUT FRAGE

  Alt 15. Nov 2003, 19:04
Zitat von Seniman:
Nach dem ersten Tastendruck ist eine kleine Pause und dann kommen ganz viele "f"s.
Das liegt halt einfach da dran wie es der User in Windows eingestellt hat, manche habe halt die Anlagverzögerung ausgemacht, dann gibt es diese Pause nicht.
  Mit Zitat antworten Zitat
ATwardz

Registriert seit: 12. Mai 2003
205 Beiträge
 
Delphi 7 Professional
 
#14

Re: DXINPUT FRAGE

  Alt 16. Nov 2003, 23:11
Hmmmmm, ja,

ich danke euch für eure Vorschläge doch es ist leider nun mal nicht das was ich suche!

Jeder kennt es, das legendäre "Spielhöllen-feeling", wo man wie ein Besessener auf die Tasten gehauen hat um zu schiessen!
Jeder Druck, ein Schuss! So wollte ich es eigentlich auch machen, das der der die schnellere Hand hat einen Vorteil hat!

Deswegen meinte ich auch das es bestimmt schon Hundert Leute gemacht heben, weil es halt zum Ursprung der Videospiele zählt!

Ich bin mir bewusst , das ich mit einen extra Timer eine permanente Abfrage machen könnte!
Ich wollte nur wissen und denke eigentlich das es irgendwo in diesem Delphiuniversum eine elegantere Lösung gibt!

Danke an alle!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 10:05 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