java贪吃蛇代码(JAVA快速实现贪吃蛇游戏)

java贪吃蛇代码。只需要一个JAVA类,实现简单的贪吃蛇游戏,手撸代码已经测试过,可正常运行,废话不说,直接上代码:package store.tbfl;import javax.swing.*;import java.awt.*;import java.awt.event.*;public cl

java贪吃蛇代码(JAVA快速实现贪吃蛇游戏)

java贪吃蛇代码。只需要一个JAVA类,实现简单的贪吃蛇游戏,手撸代码已经测试过,可正常运行,废话不说,直接上代码:

package store.tbfl;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class SnakeGame extends JPanel {

private static final int NUM_CELLS = 20;

private static final int CELL_SIZE = 20;

private int[] x;

private int[] y;

private int length;

private int foodX;

private int foodY;

private Direction direction;

private Timer timer;

public SnakeGame() {

setPreferredSize(new Dimension(NUM_CELLS * CELL_SIZE, NUM_CELLS * CELL_SIZE));

setBackground(Color.BLACK);

setFocusable(true);

addKeyListener(new KeyAdapter() {

@Override

public void keyPressed(KeyEvent e) {

handleKeyPress(e);

}

});

x = new int[NUM_CELLS * NUM_CELLS];

y = new int[NUM_CELLS * NUM_CELLS];

length = 1;

direction = Direction.RIGHT;

generateFood();

timer = new Timer(100, new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

move();

repaint();

}

});

timer.start();

}

private void handleKeyPress(KeyEvent e) {

switch (e.getKeyCode()) {

case KeyEvent.VK_UP:

if (direction != Direction.DOWN) {

direction = Direction.UP;

}

break;

case KeyEvent.VK_DOWN:

if (direction != Direction.UP) {

direction = Direction.DOWN;

}

break;

case KeyEvent.VK_LEFT:

if (direction != Direction.RIGHT) {

direction = Direction.LEFT;

}

break;

case KeyEvent.VK_RIGHT:

if (direction != Direction.LEFT) {

direction = Direction.RIGHT;

}

break;

}

}

private void generateFood() {

foodX = (int) (Math.random() * NUM_CELLS);

foodY = (int) (Math.random() * NUM_CELLS);

}

private void move() {

for (int i = length – 1; i > 0; i–) {

x[i] = x[i – 1];

y[i] = y[i – 1];

}

switch (direction) {

case UP:

y[0]–;

break;

case DOWN:

y[0]++;

break;

case LEFT:

x[0]–;

break;

case RIGHT:

x[0]++;

break;

}

checkCollision();

}

private void checkCollision() {

if (x[0] = NUM_CELLS || y[0] = NUM_CELLS) {

gameOver();

}

for (int i = 1; i < length; i++) {

if (x[i] == x[0] && y[i] == y[0]) {

gameOver();

}

}

if (x[0] == foodX && y[0] == foodY) {

length++;

generateFood();

}

}

private void gameOver() {

timer.stop();

JOptionPane.showMessageDialog(this, “Game Over”, “Game Over”,0 );

resetGame();

}

private void resetGame() {

x = new int[NUM_CELLS * NUM_CELLS];

y = new int[NUM_CELLS * NUM_CELLS];

length = 1;

direction = Direction.RIGHT;

generateFood();

timer.start();

}

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);

// 绘制蛇身

g.setColor(Color.GREEN);

for (int i = 0; i < length; i++) {

g.fillRect(x[i] * CELL_SIZE, y[i] * CELL_SIZE, CELL_SIZE, CELL_SIZE);

}

// 绘制食物

g.setColor(Color.RED);

g.fillRect(foodX * CELL_SIZE, foodY * CELL_SIZE, CELL_SIZE, CELL_SIZE);

}

public static void main(String[] args) {

JFrame frame = new JFrame(“贪吃蛇-头条号-伊伊动漫”);

SnakeGame snakeGame = new SnakeGame();

frame.add(snakeGame);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.pack();

frame.setLocationRelativeTo(null);

frame.setVisible(true);

snakeGame.requestFocus();

}

private enum Direction {

UP, DOWN, LEFT, RIGHT

}

}

直接运行main方法即可,

效果如图:

声明:该文观点仅代表作者本人,《家在公租房生活网》系信息发布平台,家在公租房生活网仅提供信息存储空间服务。
(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫

相关推荐

  • beili(围场方言大全十一(D3))

    beili。单崩儿dānbēngr:成套的物品成群的人中的单个儿、单独的、一个一个的。就我~来的。也说单崩个儿dānbēnggèr。单不楞儿dānbulēngr:单个儿、单支儿、独自一个。孩子老婆都没在家,他自己耍~呢。也说单巴楞儿dānbalēngr。单吊儿dāndiàor:单独活动。他就好玩儿~

    百科 2023年7月23日
    00
  • 主板蜂鸣器怎么接

    大家好,今天小编关注到一个比较有意思的话题,就是关于电脑主机蜂鸣器组装的问题,于是小编就整理了4个相关介绍电脑主机蜂鸣器组装的解答,让我们一起看看吧。1、卡特336行走蜂鸣器怎么装?2、主板蜂鸣器怎么接?3、保险柜蜂鸣器安装?4、万用表蜂鸣器怎么装上去的?卡特336行走蜂鸣器怎么装?卡特 336 挖

    2024年3月5日
    00
  • 电脑屏幕全屏显示怎么设置

    大家好,今天小编关注到一个比较有意思的话题,就是关于显示器全屏怎么办的问题,于是小编就整理了4个相关介绍显示器全屏怎么办的解答,让我们一起看看吧。1、电脑怎么保持一直全屏?2、电脑屏幕全屏显示怎么设置?3、电脑显示如何全屏?4、电脑屏幕全屏显示怎么设置?电脑怎么保持一直全屏?设置电脑屏幕全屏显示的具

    2024年2月17日
    00
  • 幸福的味道?

    一、幸福的味道?甜甜的 暖暖的二、幸福的味道 ?j就是 你心里的感觉。味道就是应该你会觉的甜甜的,但也是心里的感受哦、亲加油 我们都会幸福,祝福你三、2022最火的早安句子文案?1.花是牡丹最美,人为朋友最亲,交友不交金和银,只交朋友一颗心。水流千里归大海,人走千里友谊在,大树之间根连根,

    2023年9月21日
    00
  • 十二星座的最佳结婚纪念礼物(十二星座的结婚礼服)

    十二星座的最佳结婚纪念礼物,对于每一个已婚男女来说,除了对孩子到来的期待和对幸福生活的期待之外,就是另一半会在每个结婚纪念日给自己什么样的惊喜。当然,有些人从未预料到这一点,因为,他们认为这是不必要的,尤其是对一些老夫妇来说。然而,对于一些年轻夫妇来说,这是一种幸福。那么,他们会在那一天互相赠送什

    2024年2月20日
    00
  • 组装电脑时,如何合理选配电脑硬件,电脑怎么组装选配

    大家好,今天小编关注到一个比较有意思的话题,就是关于电脑怎么组装选配的问题,于是小编就整理了4个相关介绍电脑怎么组装选配的解答,让我们一起看看吧。1、组装电脑时,如何合理选配电脑硬件?2、电脑如何选择最近一次的正确配置?3、怎样选配电脑的三大件(主板、CPU、内存)?4、组装电脑怎么配置最好?组装电

    2024年2月12日
    00

发表回复

登录后才能评论
关注微信

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:296358331@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息