让小蛇动起来
public class GamePanel extends JPanel implements KeyListener, ActionListener {
@Override
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if (keyCode==KeyEvent.VK_SPACE){
isStart=!isStart;
repaint();
}
if (keyCode==KeyEvent.VK_UP){
fx="U";
}else if (keyCode==KeyEvent.VK_DOWN){
fx="D";
}else if (keyCode==KeyEvent.VK_LEFT){
fx="L";
}else if (keyCode==KeyEvent.VK_RIGHT){
fx="R";
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void actionPerformed(ActionEvent e) {
if (isStart){
for (int i = length-1; i > 0 ; i--) {
snakeX[i]=snakeX[i-1];
snakeY[i]=snakeY[i-1];
}
if (fx.equals("R")){
snakeX[0]=snakeX[0]+25;
if (snakeX[0]>850){
snakeX[0]=25;
}
}else if (fx.equals("L")){
snakeX[0]=snakeX[0]-25;
if (snakeX[0]<25){
snakeX[0]=850;
}
}else if (fx.equals("U")){
snakeY[0]=snakeY[0]-25;
if (snakeY[0]<75){
snakeY[0]=650;
}
}else if (fx.equals("D")){
snakeY[0]=snakeY[0]+25;
if (snakeX[0]>650){
snakeX[0]=75;
}
}
repaint();
}
timer.start();
}
public GamePanel(){
init();
this.setFocusable(true);
this.addKeyListener(this);
timer.start();
}
Timer timer=new Timer(100,this);