介绍
这期内容当中小编将会给大家带来有关使用java编写一个贪吃蛇游戏,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
1。封装贪吃蛇身体,抽象出贪吃蛇结点类节点,结点用ArrayList存储
import java.awt。*; public class  Node { ,private int x; y, private int ; ,public 节点(int x,, int y), { this.x 才能=,x; this.y 才能=,y; ,} ,public 节点(){ ,} ,public int  getX (), { return 才能;x; ,} ,public void 对于setX (int x), { this.x 才能=,x; ,} ,public int  getY (), { return 才能;y; ,} ,public void 调用setY (int y), { this.y 才能=,y; ,} ,public void  drawNode (int 我,Graphics g) { 如果才能(i==0){//头绘制成圆 ,,g.fillOval (this.x, this.y, 20:1, 20:1); 其他}{//身才能体绘制成矩形 ,,g.fillRect (this.x, this.y, 20:1, 20:1); ,,} ,} }
2。主类
import java.awt。*; import java.awt.event。*; import java.util.ArrayList; public class  Snake extends Frame  implements KeyListener ,, ActionListener { ,//初始蛇移动方向 String 才能;fx=皉ight";//才能碰撞判断 boolean 才能;is_attack=false; ,private ArrayList身体=new ArrayList (); ,{ body.add才能(new 节点(160,60)); body.add才能(new 节点(140,60)); body.add才能(new 节点(120,60)); int 才能;x=(int) (math . random () * 580); int 才能;y=(int) (math . random () * 580); body.add才能(new 节点(x % 20,等号左边% 20)); ,}/* * *,才能贪吃蛇 *才能,1,窗体 *,才能位置(坐标),*,标题,*,大小,*,背景颜色,*,窗体的大小不可变,*,可见 *才能,2,绘制蛇 ,*/,public 蛇(){ ,//窗体标题 super.setTitle才能(“贪吃蛇游戏“);//窗才能体位置 super.setLocation才能(100100);//窗才能体大小 super.setSize才能(600600);//才能背景颜色 super.setBackground才能(new 颜色(252255,,208));//才能设置窗体可见 super.setVisible才能(真正的);//才能,窗体大小不可变 super.setResizable才能(假);//才能给关闭按钮添加事件 super.addWindowListener才能(new WindowAdapter (), { @Override。才能 ,,public void  windowClosing (WindowEvent e), { ,,,system . exit (0); ,,} ,,});//才能获取聚焦 super.setFocusable才能(真正的);//才能添加键盘监听 super.addKeyListener才能(这个); 开始才能(); ,} ,public void  start () { 而才能(! is_attack) { ,才能尝试{ ,,,thread . sleep (200); ,,}catch (Exception e) { ,,,e.printStackTrace (); ,,} ,,//碰撞检测 ,,attack_check (); ,,//刷新窗体,调用漆方法 ,,重画(); ,,} ,} ,//碰撞检测 ,public void  attack_check () {//才能撞到身体检测 的才能(int i=1; i 使用java编写一个贪吃蛇游戏