[java] 2 speler besturing, maar hoe?

Pagina: 1
Acties:

  • TrasherXL
  • Registratie: September 2002
  • Laatst online: 21-11-2025

TrasherXL

Bicky burger for life

Topicstarter
ik ben bezig met een spel waarin 2 bootjes door 2 spelers bestuurt kunnen worden. Met behulp van een keylistener lukt dit ook. Maar het probleem is:

speler 1 gebruikt de pijltjes, speler 2 de a-w-s-d knoppen. Maar beide spelers kunnen nu niet tegelijk een knop indrukken, er wordt maar op 1 van de 2 gereageerd! Hoe kan ik dit wel realiseren? Liefst kort voorbeeld, er is bar weinig te vinden op google ...

ASUS Commando | Core2Duo E6600 @ 3Ghz air-cooled | Geforce 8800GTX | Raid-0 | 4 GB DDR2-800


  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 16-08 19:14

Eelke Spaak

- Vlad -

Het beste kan je twee verschillende threads gebruiken om naar de knopjes te luisteren, denk ik. Waarschijnlijk moet je dan twee keer een KeyListener toevoegen en allebei de keren een nieuwe thread maken in de class die de KeyListener implementeert.

TheStreme - Share anything with anyone


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Threads maken niks uit in dit geval. Het compliceerd de dingen alleen maar.

@TS:

Maak je gerbuik van de 'typed' of van de 'pressed' en 'release' event?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 09:23
Door al je keysPressed in een buffer te plaatsen en deze uit te lezen door middel van een FirstIn firstOust principe

Groetjes


  • TrasherXL
  • Registratie: September 2002
  • Laatst online: 21-11-2025

TrasherXL

Bicky burger for life

Topicstarter
KeyPressed gebruik ik nu.

In buffer plaatsen werkt niet, als je 2 keys tegelijk indrukt komt er maar 1 binnen...(tenzij speciale functie toets).

Momenteel gebruik ik een timer en 2 globale variabelen die de richting aangeven, en gezet worden door de spelers keytoetsen, de timer duwt dan als het waren de objecten die richting in tot een andere richting is gekozen.. dit werkt vrij aardig, maar niet als je 2 keys inhoud, je moet dus "blijven toetsen", wat nu afgevangen wordt doordat ze continu bewegen maar dit moet juist niet. Ik wil de kunnen laten bewegen door de knoppen in te houden en niet via een timer-driven code.

Threads maakt idd niets uit. Ze reageren toch allebei op dezelfde knoppen.

ASUS Commando | Core2Duo E6600 @ 3Ghz air-cooled | Geforce 8800GTX | Raid-0 | 4 GB DDR2-800


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Vladimir G. schreef op 23 September 2003 @ 10:45:
Het beste kan je twee verschillende threads gebruiken om naar de knopjes te luisteren, denk ik. Waarschijnlijk moet je dan twee keer een KeyListener toevoegen en allebei de keren een nieuwe thread maken in de class die de KeyListener implementeert.
Threads maken niks uit in dit geval. Het compliceerd de dingen alleen maar.

@TS:

Maak je gerbuik van de 'typed' of van de 'pressed' en 'release' event?
Het event wordt verstuurd op de event dispatching thread. Als het verwerken van het event erg lang duurt, dan worden andere events dus gequeueued en dus niet verwerkt. Als het verwerken lang duurt, dan zouden threads wel eens de uitkomst kunnen bieden.

[edit]
Ik weet verder niet hoe het zit als 1 toets is ingedrukt en je drukt daarna nog een in.

[ Voor 15% gewijzigd door Alarmnummer op 23-09-2003 14:57 ]

Pagina: 1