使用java编写一个贪吃蛇游戏

  介绍

这期内容当中小编将会给大家带来有关使用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编写一个贪吃蛇游戏