如何用java实现一个贪吃蛇小游戏?

如题所述

1、设计游戏,首先就要设计界面。首先看一下我设计的一个界面。界面分为左边的游戏区与右边的控制区。游戏区包含“得分信息”和贪吃蛇的游戏区,右边控制区有“开始”“暂停”“停止”按钮,等级选择单选框以及游戏排行榜。


2、所以我们需要定义swing组件,并在类初始化时初始化这些组件,添加组件。因为后面设计游戏的时候,我们要确切知道游戏区的大小,所以这里设置游戏区固定大小值。本来想用布局来更好的管理,但作者对布局也掌握不够,所以就先设置固定大小吧。


3、定义我们的游戏。贪吃蛇游戏其实就是包含很多细小网格,然后蛇在网格中移动。蛇由一连串的网格组成,为了视觉效果,蛇身用蓝色标记,食物用红色标记,背景白色。如第一张图片所示。所以,我们需要定义二维数组,保存网格信息,保存蛇身和食物的位置信息等。初始化时,还需要添加键盘事件控制上下左右移动。



4、食物的位置信息是二维的,所以我简单定义了一个类用来保存二维信息。

5、接着就是实现游戏的功能了。开始,暂停,停止按钮添加事件控制游戏开始。等级按钮定义游戏难度等。


6、开始游戏后,我们定义一个定时器。蛇身按照指定的方向移动,方向是通过初始化时添加的键盘事件,键盘的上下左右按钮来控制。蛇身是连续的位置信息,保存到队列中,所以蛇身的移动就是队首增加一个位置,队尾减少位置,然后重新绘画游戏区就可以了。


温馨提示:内容为网友见解,仅供参考
无其他回答

如何用java实现一个贪吃蛇小游戏?
1、设计游戏,首先就要设计界面。首先看一下我设计的一个界面。界面分为左边的游戏区与右边的控制区。游戏区包含“得分信息”和贪吃蛇的游戏区,右边控制区有“开始”“暂停”“停止”按钮,等级选择单选框以及游戏排行榜。2、所以我们需要定义swing组件,并在类初始化时初始化这些组件,添加组件。因为后面...

求"贪吃蛇"小游戏JAVA源代码一份
weiy=(int)(food[shu]%10)*40;repaint(); \/\/重绘下一个食物 add(snake[shu]); \/\/增加蛇节数和位置 snake[shu].setBounds(snake[shu-1].getBounds());} thread.sleep(100); \/\/睡眠100ms } catch(Exception e){} } else if(fangxiang==1)\/\/向左 { try { x-=10;snake[0].setL...

帮忙给个java小游戏源程序
menuitem1 = new JMenuItem("重新开始"); menuitem2 = new JMenuItem("退出游戏"); menuitem3 = new JCheckBoxMenuItem("简单"); menuitem4 = new JCheckBoxMenuItem("普通"); menuitem5 = new JCheckBoxMenuItem("困难"); menuitem6 = new JMenuItem("作者"); menu1.add(menuitem1); menu1.add(m...

求JAVA贪吃蛇代码 要能运行有注解的!
import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;public class GreedSnake implements KeyListener{ JFrame mainFrame;Canvas paintCanvas;JLabel labelScore;SnakeModel snakeModel = null;public static final int canvasWidth = 200;public static final int canva...

求贪吃蛇java程序代码(要能运行的,有完整注释的)
* 该类实现Runnable接口, * *\/\/\/定义snake的模型import java.util.*;import javax.swing.*;public class SnakeModel implements Runnable { private GreedSnake gs; \/\/给每一个矩阵点确立一个boolean值 boolean[][] matrix; private int maxX; private int maxY; \/\/设置一个节点的列表; LinkedList nodeArray ...

谁会用java编写“贪吃蛇”小游戏
Button b11,b12,b13,b14,b15,b16,b17,b18; \/\/30个按钮来实现游戏界面 Button b19,b20,b21,b22,b23,b24,b25; \/\/可以用数组实现,这是本人 Button b26,b27,b28,b29,b30,bc; \/\/学java时,入门的联系,所以 Button b,ba,br,bt1,bt2; \/\/有些东西很业余!!嘻嘻 Panel p1,p2,p3;Text...

谁帮我写个java贪吃蛇游戏全面的包括得分等功能!谢谢!希望大家帮帮忙...
private String help = "游戏说明:\\n1 :方向键控制蛇移动的方向."+ "\\n2 :按开始键开始游戏."+ "\\n3 :按暂停键可以暂停游戏,再按暂停键能继续玩游戏."+ "\\n4 :黄色为普通食物,吃一个得100分."+ "\\n5 :青色为穿身宝物,吃一个得100分,该宝物允许玩家穿过一次蛇身"+ "\\n6 :红色...

用Java逻辑思维,前十章做一个小游戏。可以在MyEclipse8.5运行的...
贪吃蛇游戏!package com.hbsi;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;\/\/Main Class public class GreedSnake extends KeyAdapter{ JFrame mainFrame;Canvas paintCanvas;JLabel labelScore;\/\/计分牌 SnakeModel snakeModel=null;\/\/ 蛇 public static ...

Java 编写贪吃蛇游戏的大体思路是什么?
\\x0d\\x0a原理:\\x0d\\x0a把蛇身体的每一块看成一个对象(对象存储该块的坐标和相关信息),作为节点存储在线性链表中,再设置一个变量标志蛇的方向(通过按键可以改变)。一般人都是让每一个节点等于他指向的下一个节点,并让头节点改变位置来实现转弯和移动,这个算法复杂度太高(O(n)),实际上只要做两步操作,...

求大神给一份JAVA小游戏,贪吃蛇或者俄罗斯方块源代码。my eclipse能直接...
import java.awt.event.*;class Game extends JFrame implements KeyListener,Runnable { Thread Down10 = new Thread(this);GameCanvas test = new GameCanvas();JLabel LabelTetris = new JLabel("Tetris Game");JLabel ScorePrint1 = new JLabel("Score");JLabel ScorePrint2 = new JLabel(...

相似回答
大家正在搜