Forum zamknięte. Zapraszamy do grupy na Facebooku
Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
obsługa zdarzeń - klawiatura
05-10-2013, 10:11 AM
Post: #1
obsługa zdarzeń - klawiatura
Witam

Mam pytanie odnośnie kodu strzałek z klawiatury. Pisze taki program i chcę poruszać się w nim klawiaturą, mam zdefiniowane przyciski a nie działają, więc jak mam zrobić aby była kontrola. Nie wiem czy są dodatkowo jakieś ustawienia klawiatury w środowisku eclipse prócz zapisu jak poniżej


import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Timer;


public class Prog1 extends Applet implements KeyListener
{
int rozmiar1 = 14*40;
int rozmiar2 = 10*40;
static Applet applet;
Prog1a zadanie = new Prog1a();
Timer timer = new Timer();
Image bufor;
Graphics bg;
public void init()
{
applet = this;
applet.addKeyListener(this);
applet.setSize(rozmiar1, rozmiar2);
applet.setBackground(Color.LIGHT_GRAY);
bufor = createImage(rozmiar1, rozmiar2);
bg = bufor.getGraphics();
timer.scheduleAtFixedRate(zadanie, 10, 10);

zadanie.zrobPlansze();
}
public void update(Graphics g)
{
bg.clearRect(0, 0, rozmiar1, rozmiar2);
paint(bg);
g.drawImage(bufor, 0, 0, applet);

}
public void paint(Graphics g)
{
rysujPlansze(g);



// g.setColor(Color.RED);
// g.fillRect(zadanie.poz1, zadanie.poz2, 100, 100);
/* Font font = new Font("New Times Roman", Font.BOLD,24);
g.setColor(Color.BLUE);
g.setFont(font);
g.drawString("Hello Applet!", 250,100); */
}

public void rysujPlansze(Graphics g)
{
for (int i=0; i<zadanie.plansza.length;i++)
{
for (int j=0; j<zadanie.plansza[0].length;j++)
{
switch(zadanie.plansza[i][j])
{
case 1:
g.setColor(Color.RED);
g.fillRect(40*j, 40*i, 40, 40);
break;
case 2:
g.setColor(Color.BLUE);
g.fillRect(40*j, 40*i, 40, 40);
break;
case 3:
g.setColor(Color.CYAN);
g.fillOval(40*j, 40*i, 40, 40);
break;
case 4:
g.setColor(Color.YELLOW);
g.fillOval(40*j, 40*i, 40, 40);
break;
}


}


}


}

public void keyPressed(KeyEvent arg0)
{
switch(arg0.getKeyCode())
{
case 37:
zadanie.ruszaj('l');
break;
case 38:
zadanie.ruszaj('g');
break;
case 39:
zadanie.ruszaj('p');
break;
case 40:
zadanie.ruszaj('d');
break;

}

}
@Override
public void keyReleased(KeyEvent arg0)
{
// TODO Auto-generated method stub

}
@Override
public void keyTyped(KeyEvent arg0)
{
// TODO Auto-generated method stub

}
}
------------------------------------------------------------------------------------
druga klasa
------------------------------------------------------------------------------------

import java.util.TimerTask;

public class Prog1a extends TimerTask
{
/* int poz1 = 0;
int poz2 = 0;
int kierunek = 1;
int licznik = 0;*/

int plansza[][] = new int[10][14];
int poz1 = 4;
int poz2 = 7;

public void run()
{
/* switch(kierunek)
{
case 1:
licznik++;
poz1++;
if (licznik==200)
{
licznik = 0;
kierunek = 2;
}
break;
case 2:
licznik++;
poz2++;
if (licznik==200)
{
licznik = 0;
kierunek = 3;
}
break;
case 3:
licznik++;
poz1--;
if (licznik==200)
{
licznik = 0;
kierunek = 4;
}
break;
case 4:
licznik++;
poz2--;
if (licznik==200)
{
licznik = 0;
kierunek = 1;
}
break;

}


/* poz1 ++;
poz2 ++;*/

Prog1.applet.repaint();
}
public void zrobPlansze()
{
int plansza2[][] = {
{1,1,1,1,1,1,1,1,1,1,1,1,0,0},
{1,2,2,0,0,1,0,0,0,0,0,1,1,1},
{1,2,2,0,0,1,0,3,0,0,3,0,0,1},
{1,2,2,0,0,1,3,1,1,1,1,0,0,1},
{1,2,2,0,0,0,0,4,0,1,1,0,0,1},
{1,2,2,0,0,1,0,1,0,0,3,0,1,1},
{1,1,1,1,1,1,0,1,1,3,0,3,0,1},
{0,0,1,0,3,0,0,3,0,3,0,3,0,1},
{0,0,1,0,0,0,0,1,0,0,0,0,0,1},
{0,0,1,1,1,1,1,1,1,1,1,1,1,1}

};

for (int i=0;i<plansza.length;i++)
{
for (int j=0;j<plansza[0].length;j++)
{
plansza[i][j] = plansza2[i][j];

}

}
}
public void ruszaj(char gdzie)
{
switch(gdzie)
{
case 'l':
if (plansza[poz1][poz2-1]==0)
{
plansza[poz1][poz2-1]=4;
plansza[poz1][poz2-1]=0;
poz2--;

}
break;
case 'p':
break;
case 'g':
break;
case 'd':
break;
}

}
}

----------------------------------------------------------------------------------------------
Proszę o pomoc w rozwiązaniu tego problemu.
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
09-16-2013, 09:56 PM
Post: #2
RE: obsługa zdarzeń - klawiatura
Zobacz na ten filmik , chyba coś podobnego napisał Smile może tam znajdziesz odpowiedź

https://www.youtube.com/watch?v=aWBjs4vlHUM
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości