Vinnaren i pepparkakshustävlingen!
2008-02-27, 16:09
  #1
Medlem
Jag sitter på min Macbook pro och försöker göra ett program som går ut på att man ska ta sig igenom en labyrint som finns på skärmen. Problemet är att när jag ska läsa in piltangenterna får jag felaktiga ascii-koder. Istället för 37 för höger piltangent får jag 65535, vilket jag får för samtliga piltangenter. Vad är det som är på tok?
Citera
2008-02-27, 18:45
  #2
Medlem
moniturs avatar
Hur läser du in knapptryckningarna?
Citera
2008-02-27, 19:30
  #3
Medlem
Vår lärare i programmeringsteknik har skrivit ett kurspaket som man importerar. Där ingår bla ett graphicswindow som man kan ställa till att lyssna efter knapptryckningar eller musklick. Man skriver typ:

GraphicsWindow w = new GraphicsWindow(height, width);
w.checkKeys(true, false, false);


Då läser fönstret in knapptryckningar. Vet inte hur det är jämfört med hur man gör utan detta paket. Jag har provat att med System.out.println skriva ut mina knapptryckningar och får ut rätt värden på bokstäver, siffror, enter, mellanslag o.s.v. men shift, tab och piltangenterna får alla samma ASCII-kod nämligen 65535.
Citera
2008-02-27, 20:13
  #4
Medlem
Det finns inga pilar i ASCII-tabellen. Du kanske får -1 i retur, 0xFFFF, det
tolkas ju som 65535 utan tecken.
Citera
2008-02-27, 21:22
  #5
Medlem
Finns det inte? Jag kollade tabellen och tyckte att de låg där på plats 37, 38, 39 och 40. Hur gör jag annars för att läsa in dem på ett vettigt sätt?
Citera
2008-02-27, 21:37
  #6
Medlem
Tooners avatar
Du använder getKeyCode() från KeyEvent. Sedan finns det konstanter får tangenterna.. VK_DOWN, VK_RIGHT etc.

så typ

Kod:
public void keyPressed(KeyEvent k) {
    
int keyTyped e.getKeyCode();

    if (
keyTyped == KeyEvent.VK_LEFT) {
        
//Gör något när vänsterpilen trycks ned
    
}

Citera
2008-02-27, 21:43
  #7
Medlem
Tackar! Det funkar fint!
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback