[JAVA] timer/event afvangen

Pagina: 1
Acties:

  • Krooswijk.com
  • Registratie: Mei 2000
  • Laatst online: 17-08-2024
hallo ben een simpele tetris aan 't maken.
hiervan wordt het scherm bv om de seconde gerefreshed.

echter als er iemand op een knop duwt moet deze eigenlijk direct gerefreshed worden. nu is het dus zo dat de seconde (timerinterval) afwacht wat niet reele beelden oplevert.

ik neem aan dat de probleemstelling duidelijk is. ik zou dus willen dat alles vloeiend verloopt en dat als er op een knop wordt geduwd het blokje direct vloeiend verplaatst. iemand een idee?

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Wat dacht je van de refreshrate gewoon een stuk opschroeven?

Wat je ook kan doen is aan de actionListner van de knop (of het keyevent) een repaint() hangen.

  • Krooswijk.com
  • Registratie: Mei 2000
  • Laatst online: 17-08-2024
dat laatste zal ik effe onderzoeken

dat eerste werkt niet goed, omdat dan in level 1 al dat blokje naar beneden suist

Verwijderd

Hey,

Je moet inderdaad de refreshrate omhoog gooien
wat je doet je laat je timer geen 1000 ms sleepen maar
20 ms bijvoorbeeld
en dan tel je gewoon totdat je bij 1000 ms bent en dan reset counter en weer van voor af aan.
Nu hoef je maar 20 ms te wachten op je event en dat is acceptabel.

  • Stephan Oudmaijer
  • Registratie: Oktober 2000
  • Laatst online: 16-08-2023
je moet je refresh timer en je blok move timer los koppelen

24 keer per seconden tekenen, dan loopt het vloeiend en je blokken gewoon per seconden 1 rij naar beneden bewegen:

voorbeeld:

class Display extends Thread
{
public void run()
{
while( true ) {
Thread.sleep( 1000/24 );
refresh();
}
}
}

class TetrisMover extends Thread
{
public void run()
{
while( true ) {
Thread.sleep( 1000 );
moveTetrisBlok();
}
}


zoiets.