Heim > php教程 > php手册 > java贪食蛇源代码分享

java贪食蛇源代码分享

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-01 09:46:44
Original
1068 Leute haben es durchsucht
<code class="language-java">import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
 
/**
 * @url http://download.csdn.net/detail/leasystu/4308246
 * 
 * @author Easy
 */
public class InterFace extends JFrame {
    public static final int WIDTH = 800, HEIGHT = 600, SLEEPTIME = 20, L = 1,
            R = 2, U = 3, D = 4;
    BufferedImage offersetImage = new BufferedImage(WIDTH, HEIGHT,
            BufferedImage.TYPE_3BYTE_BGR);;
    Rectangle rect = new Rectangle(20, 40, 15 * 50, 15 * 35);
    Snake snake;
    Node node;
 
    public InterFace() {
        snake = new Snake(this);
        createNode();
        this.setBounds(100, 100, WIDTH, HEIGHT);
        this.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent arg0) {
                System.out.println(arg0.getKeyCode());
                switch (arg0.getKeyCode()) {
                case KeyEvent.VK_LEFT:
                    snake.dir = L;
                    break;
                case KeyEvent.VK_RIGHT:
                    snake.dir = R;
                    break;
                case KeyEvent.VK_UP:
                    snake.dir = U;
                    break;
                case KeyEvent.VK_DOWN:
                    snake.dir = D;
                }
            }
        });
        this.setTitle("贪吃蛇 0.1   By : Easy");
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setVisible(true);
        new Thread(new ThreadUpadte()).start();
    }
 
    public void paint(Graphics g) {
        Graphics2D g2d = (Graphics2D) offersetImage.getGraphics();
        g2d.setColor(Color.white);
        g2d.fillRect(0, 0, WIDTH, HEIGHT);
        g2d.setColor(Color.black);
        g2d.drawRect(rect.x, rect.y, rect.width, rect.height);
        if (snake.hit(node)) {
            createNode();
        }
        snake.draw(g2d);
        node.draw(g2d);
        g.drawImage(offersetImage, 0, 0, null);
    }
 
    class ThreadUpadte implements Runnable {
        public void run() {
            while (true) {
                try {
                    Thread.sleep(SLEEPTIME);
                    repaint();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
 
    public void createNode() {
        int x = (int) (Math.random() * 650) + 50, y = (int) (Math.random() * 500) + 50;
        Color color = Color.blue;
        node = new Node(x, y, color);
    }
 
    public static void main(String args[]) {
        new InterFace();
    }
}
 
class Node {
    int x, y, width = 15, height = 15;
    Color color;
 
    public Node(int x, int y, Color color) {
        this(x, y);
        this.color = color;
    }
 
    public Node(int x, int y) {
        this.x = x;
        this.y = y;
        this.color = color.black;
    }
 
    public void draw(Graphics2D g2d) {
        g2d.setColor(color);
        g2d.drawRect(x, y, width, height);
    }
 
    public Rectangle getRect() {
        return new Rectangle(x, y, width, height);
    }
}
 
class Snake {
    public List<node> nodes = new ArrayList<node>();
    InterFace interFace;
    int dir = InterFace.R;
 
    public Snake(InterFace interFace) {
        this.interFace = interFace;
        nodes.add(new Node(20 + 150, 40 + 150));
        addNode();
    }
 
    public boolean hit(Node node) {
        for (int i = 0; i = 20 + 15 * 50 - nodeTempNode.width) {
                nodeTempNode = new Node(20 - nodeTempNode.width, nodeTempNode.y);
            }
            nodes.add(0, new Node(nodeTempNode.x + nodeTempNode.width,
                    nodeTempNode.y));
            break;
        case InterFace.U:
            if (nodeTempNode.y = 40 + 15 * 35 - nodeTempNode.height) {
                nodeTempNode = new Node(nodeTempNode.x,
                        40 - nodeTempNode.height);
            }
            nodes.add(0, new Node(nodeTempNode.x, nodeTempNode.y
                    + nodeTempNode.height));
            break;
        }
    }
}</node></node></code>
Nach dem Login kopieren

 

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
Kann Java als Backend des Webs verwendet werden?
Aus 1970-01-01 08:00:00
0
0
0
Installieren Sie JAVA
Aus 1970-01-01 08:00:00
0
0
0
Java kann nicht installiert werden
Aus 1970-01-01 08:00:00
0
0
0
Ist das in der Java-Sprache?
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage