Avatar billede stephanryer Nybegynder
10. november 2004 - 22:35 Der er 13 kommentarer og
1 løsning

KeyListener - Findes der en while funktion?

hvis jeg nu vil have en flydende bevægelse når jeg trykker en knap ned istedet for at der er en pause før den der taste repeat funktion starter, hvordan gør jeg så det?

Man man detected om en knap holdes konstant nede?
Avatar billede stephanryer Nybegynder
10. november 2004 - 22:42 #1
man kan selvfølgelig have en boolean der sættes ved true når en bestemt tast trykkes ned, og sætte den til false når en vilkårlig tast løftes, men det vil give problemer med flere tastetryk på én gang
Avatar billede kalp Novice
10. november 2004 - 23:11 #2
hvad skal der ske på skærmen når det er? tænker du på tekst? fx hvis man trykker
j nede ? så skal den skrive

jjjjjjjjjjjjjjjjjjj

og ikke

j[pause]jjjjjjjjjjj


?
Avatar billede kartinm Nybegynder
11. november 2004 - 00:32 #3
hvad med følgende
if (Key.isDown(Key.SPACE)) {
  et eller andet
}

det skulle virke fint - hvis jeg har forstået dit spørgsmål korrekt !
:)
Avatar billede stephanryer Nybegynder
11. november 2004 - 10:52 #4
Det tror jeg du har, prøver det lige af når jeg kommer hjem. Du kan jo evt lige lægge et svar med det samme, så får du point hvis det virker :D Skal det så ligge i KeyListeneren?
Avatar billede kartinm Nybegynder
11. november 2004 - 10:56 #5
Hej igen.. Ja, læg det i KeyListneren...
Det med point er lige meget - behold dem selv ;-) Det er lige straks juleferie, så bliver der rige muligheder at bruge dem !
Avatar billede stephanryer Nybegynder
11. november 2004 - 11:00 #6
oke, mr. gentleman. Stikke pointene i lommen igen så :D
Avatar billede stephanryer Nybegynder
11. november 2004 - 11:00 #7
Frem og tilbage er lige langt
Avatar billede stephanryer Nybegynder
11. november 2004 - 11:13 #8
forresten:

    public class TastetrykListener implements KeyListener {
        public void keyPressed(KeyEvent event) {
            if (Key.isDown(Key.SPACE)) {
                  y+=2;
                }
            repaint();
        }
        public void keyTyped(KeyEvent event) {
        }
        public void keyReleased(KeyEvent event) {
        }
    }

Her ved den ikke hvad "Key." er for noget
Avatar billede kartinm Nybegynder
11. november 2004 - 11:18 #9
hmmm...
prøv så at ta´ den ud af keylistneren, og læggen den i en funktion, som bliver kaldet for hvert frame !
Avatar billede stephanryer Nybegynder
11. november 2004 - 11:19 #10
if (Key.isDown(KeyEvent.VK_SPACE)) {
                  y+=2;
                }

Sådan her skal SPACE defineres med Key.isDown virker ikke og det virker heller ikke med KeyEvent istedet for Key.
ANdre der har forslag???
Avatar billede stephanryer Nybegynder
11. november 2004 - 11:27 #11
well, har selv løst det sådan her:

    public void actionPerformed(ActionEvent event) {
        if (spaceDown)
            y += 3;
        if (leftDown)
            x += 3;
    }

public class TastetrykListener implements KeyListener {
        public void keyPressed(KeyEvent event) {
            if (event.getKeyCode() == KeyEvent.VK_SPACE) {
                spaceDown = true;
            }
            if (event.getKeyCode() == KeyEvent.VK_LEFT) {
                leftDown = true;
            }
        }

        public void keyTyped(KeyEvent event) {
        }

        public void keyReleased(KeyEvent event) {
            if (event.getKeyCode() == KeyEvent.VK_SPACE) {
                spaceDown = false;
            }
            if (event.getKeyCode() == KeyEvent.VK_LEFT) {
                leftDown = false;
            }
        }
    }
Avatar billede kartinm Nybegynder
11. november 2004 - 11:30 #12
:) Der kan man bare se :)
Avatar billede stephanryer Nybegynder
11. november 2004 - 11:42 #13
ja man kan :D

Hvilket sprog programmerer du i, for det du skrev minder mere om FLash?
Avatar billede kartinm Nybegynder
11. november 2004 - 11:47 #14
lol.. det forstår jeg godt...  jeg kan se, at jeg har skrevet "frame" - det er fordi jeg sidder lige nu og sætter et spil sammen i flash :) derfor forvirringen - mine tanker var et andet sted :)
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