µ±Ç°Î»Ö㺠´úÂëÃÔ >> Eclipse >> Ϊʲô˵СµÜÎÒSnakeÎÞ·¨½âÎö
  Ïêϸ½â¾ö·½°¸

Ϊʲô˵СµÜÎÒSnakeÎÞ·¨½âÎö

Èȶȣº50   ·¢²¼Ê±¼ä£º2016-04-23 01:06:24.0
Ϊʲô˵ÎÒSnakeÎÞ·¨½âÎö£¿

import javax.swing.*;



import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class Game {
public static void main(String args[]) {
GameSnake gs = new GameSnake();

}
}

class  GameSnake  implements KeyListener {
         
         JLabel jlabel;
         JPanel jpanel;
         JFrame jframe; 
        
       
static int panelWidth = 294;

static int panelHeight = 450;

int rectX = 15;

int rectY = 15;

Snake snake; 

Node n;

public GameSnake() {
               jframe=new JFrame("̰³ÔÉßDEMO!");
               jframe.setLayout(new BorderLayout());
               Container cp=jframe.getContentPane();
               jlabel=new JLabel("welcome");
               jlabel.setText("Welcome my friend! Enjoy your self!");
  
               cp.add(jlabel,BorderLayout.NORTH);
               jpanel=new JPanel();
               jpanel.setLayout(new BorderLayout());     
               cp.add(jpanel,BorderLayout.CENTER);
               


                jframe.pack();
snake = new Snake(this, panelWidth / rectX, panelHeight / rectY);
setBackground(Color.WHITE);
setSize(panelWidth, panelHeight);
setFocusable(true);
addKeyListener(this);
                
}

public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
LinkedList list = Snake.snakeList;
Iterator it = list.iterator();
g2.setColor(Color.black);
while (it.hasNext()) {
n = (Node) it.next();
drawNode(g2, n);
}
g2.setColor(Color.ORANGE);
Node f = snake.food;
drawNode(g2, f);
snake.drawMap(g2);// »æÖƵØÍ¼
}

public void keyPressed(KeyEvent e) {
int keycode = e.getKeyCode();
if (keycode == KeyEvent.VK_ENTER) {
begin();
} else if (keycode == KeyEvent.VK_UP) {
snake.changeDirection(Snake.up);
} else if (keycode == KeyEvent.VK_DOWN) {
snake.changeDirection(Snake.down);
} else if (keycode == KeyEvent.VK_LEFT) {
snake.changeDirection(Snake.left);
} else if (keycode == KeyEvent.VK_RIGHT) {
snake.changeDirection(Snake.right);
} else if (keycode == KeyEvent.VK_S) {
Snake.run = false;
}
}

public void keyReleased(KeyEvent e) {
}

public void keyTyped(KeyEvent e) {
}

public void drawNode(Graphics2D g, Node n) {
g.fillRect(n.x * rectX, n.y * rectY, rectX - 2, rectY - 2);
}

public void begin() {
Snake.run = true;
SnakeThread thread = new SnakeThread(snake);
thread.start();
}

        public void repaint(){
           int score=snake.getScore();
           jlabel.setText("ÄúµÄµÃ·ÖÊÇ£º"+score);
  
         }


}

class Node {
int x;

int y;

public Node(int x, int y) {
this.x = x;
this.y = y;
}
}

class SnakeThread extends Thread {
Snake snake;

public SnakeThread(Snake s) {
snake = s;
}

public void run() {
                
        int interval=200;