Avatar billede dadane Novice
28. august 2003 - 22:49 Der er 2 kommentarer og
1 løsning

Tjek for tastaturtryk til spil

Jeg leger lidt med at lave et spil - for at lære mere om Java. Se evt. www.cyberverden.dk).

Der er nogle ting der driller en smule.

Hvordan tester jeg for om f.eks. pil-op er trykket ned?

I øjeblikket bruger jeg denne metode

    public boolean keyDown(Event e, int key) {
        if (key == Event.LEFT) left=true;
        if (key == Event.RIGHT) right=true;
        if (key == Event.UP) up=true;
        if (key == Event.DOWN) down=true;
        return true;
    }

Den virker for så vidt o.k. Eneste problem er at hvis man trykker (og holder) pil op nede så kommer der 1 "klik" - en længere pause - og derefter er den "trykket ned" (klikkkene kommer hurtigere end jeg kan nå at bruge dem). Hvordan opnår jeg den effekt fra starten?

Bliver det iøvrigt også nødvendigt at flushe tastaturbufferen - og hvis ja - hvordan gøres så dette?
Avatar billede Slettet bruger
29. august 2003 - 01:26 #1
Den effekt, er en feature i operativ systemet, der gør at man ikke kommer til at skrive sååådddaan her, hvis man holder for længe på tasterne. I windows kan denne indstilles i kontrolpanelet.

Du kunne overveje en anden løsning, hvor du bruger keyPressed og keyReleased metoderne istedet. Efter en KeyEvent til keyPressed, er tasten "trykket ned" så længe du ikke har modtaget en event (fra samme tast) til keyReleased.

Jeg ved ikke om denne metode virker, men det er en idé.
Avatar billede goldfinger Nybegynder
29. august 2003 - 10:26 #2
ude i programmet:
...
addKeyListener(new TastLytter());
...

class TastLytter implement eller extends KeyListener{
  public void keyPressed(KeyEvent e)
  {
    if (key == Event.LEFT) left=true;
  }
  public void keyReleased(KeyEvent e)
  {
    if (key == Event.LEFT) left=false;
  }
}
Avatar billede dadane Novice
23. februar 2005 - 12:53 #3
Lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester