Autor Beitrag
Akula
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Di 11.12.07 14:52 
Hallo, ich mache zur zeit ein kleines Projekt. In diesem soll 2 Spieler gegeneinander spielen können über die Tastatur. Beide sollen ein Bild Bewegen. Nur leider gibt es aber nur einemal das Events OnKeyPress, so dass immer nur einer immer Spielen kann und der 2. Spieler immer vom ersten abhängig ist.

Kann man dieses Events ein 2. Mal starten, sodass ich den 2. Spieler auch steruen kann?
Dunkel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 682

Mac OS X Snow Leopard
Xcode 3.1
BeitragVerfasst: Di 11.12.07 15:14 
Hallo!

Simultan 2 Tastendrücke zu erkennen ist so ohne weiteres nicht möglich. Mach Dich mal über Suche in: Delphi-Forum, Delphi-Library DIRECTINPUT schlau, damit sollte das gehen.

_________________
Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Di 11.12.07 16:57 
2 Eventlisteners auf 1 Event geht von Haus aus nicht. Aber du kannst ja einen Event-Verteiler an den einen Event hängen und die Spielerobjekte (sofern du sowas hast) melden sich beim Verteiler an.
Gibt auch andere Lösungen, hängt von deinem Design ab.
Ps. Den Verteiler musst du selbst programmieren. Ein Array und 2 Methoden zum an und abmelden plus den Delphieventlistener (Verteilermethode) in eine Klasse oder Record packen und fertig.
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Di 11.12.07 20:07 
es gibt eine Funktion mit der du gucken kannst, ob eine Taste momentan gedrückt ist *stöbert in alten Projekten rum*

ah, genau:

ausblenden Delphi-Quelltext
1:
2:
if GetAsyncKeyState(13) then
  //Enter is pressed

die 13 steht für den ANSI-Code der Taste (das was du in OnKeyDown als Word bekommst)

man sollte dabei beachten, dass die Tastatur (liegt wohl an Windoof) nur max. 2 Tasten gleichzeitig senden kann

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Akula Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Mi 12.12.07 20:59 
Danke für die Antworten. Ich glaube ich lass das mit dem 2. Spieler. Trotzdem danke, für die Hilfe.