国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

java實現簡易貪吃蛇游戲

瀏覽:17日期:2022-08-18 18:56:32

本文實例為大家分享了java實現貪吃蛇游戲的具體代碼,供大家參考,具體內容如下

1.封裝貪吃蛇身體,抽象出貪吃蛇結點類Node,結點用ArrayList存儲

import java.awt.*;public class Node { private int x; private int y; public Node(int x, int y) { this.x = x; this.y = y; } public Node(){ } 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 i, Graphics g){ if(i==0){//頭繪制成圓 g.fillOval(this.x,this.y,20-1,20-1); }else{//身體繪制成矩形 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='right'; //碰撞判斷 boolean is_attack=false; private ArrayList<Node> body=new ArrayList<Node>(); { body.add(new Node(160, 60)); body.add(new Node(140, 60)); body.add(new Node(120, 60)); int x=(int)(Math.random()*580); int y=(int)(Math.random()*580); body.add(new Node(x-x%20,y-y%20)); } /** * 貪吃蛇 * 1、窗體 * 位置(坐標) * 標題 * 大小 * 背景顏色 * 窗體的大小不可變 * 可見 * 2、繪制蛇 */ public Snake(){ //窗體標題 super.setTitle('貪吃蛇游戲'); //窗體位置 super.setLocation(100,100); //窗體大小 super.setSize(600,600); //背景顏色 super.setBackground(new Color(252,255, 208)); //設置窗體可見 super.setVisible(true); // 窗體大小不可變 super.setResizable(false); //給關閉按鈕添加事件 super.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); //獲取聚焦 super.setFocusable(true); //添加鍵盤監聽 super.addKeyListener(this); start(); } public void start(){ while(!is_attack){ try{ Thread.sleep(200); }catch (Exception e){ e.printStackTrace(); } //碰撞檢測 attack_check(); //刷新窗體,調用paint方法 repaint(); } } //碰撞檢測 public void attack_check(){ //撞到身體檢測 for(int i=1;i<body.size()-1;i++){ if (body.get(0).getX()==body.get(i).getX()&&body.get(0).getY()==body.get(i).getY()){ is_attack=true; } } //撞到邊界 if(body.get(0).getX()==0||body.get(0).getX()==600||body.get(0).getY()==0||body.get(0).getY()==600){ is_attack=true; } } //移動貪吃蛇 public void move(){ //吃到食物判斷,頭結點坐標和食物坐標相等 if ((body.get(0).getX()==body.get(body.size()-1).getX())&&(body.get(0).getY()==body.get(body.size()-1).getY())) { //出現下一個食物 int x=(int)(Math.random() * 580); int y=(int)(Math.random() * 580); body.get(body.size()-1).setX(x-x%20); body.get(body.size()-1).setY(y-y%20); //蛇身加一個結點 body.add(body.size()-1,new Node(0,0)); } //移動頭尾節點,使貪吃蛇移動 Node node=body.get(0); if (fx.equals('up')){ node=new Node(node.getX(),node.getY()-20); //加頭 body.add(0,node); //去尾 body.remove(body.size()-2); }if (fx.equals('down')){ node=new Node(node.getX(),node.getY()+20); //加頭 body.add(0,node); //去尾 body.remove(body.size()-2); }if (fx.equals('right')){ node=new Node(node.getX()+20,node.getY()); //加頭 body.add(0,node); //去尾 body.remove(body.size()-2); }if (fx.equals('left')){ node=new Node(node.getX()-20,node.getY()); //加頭 body.add(0,node); //去尾 body.remove(body.size()-2); } } /** * 展示窗體|每一次刷新窗體都會執行的方法 * @param g 畫筆 */ @Override public void paint(Graphics g) { g.setColor(new Color(105, 78,255)); for(int i=0; i<body.size(); i++){ body.get(i).drawNode(i,g); } move(); //游戲結束繪制 if(is_attack){ g.setColor(new Color(255, 67, 40)); Font ft = new Font('宋體', Font.PLAIN, 40); g.setFont(ft); g.drawString('很遺憾,游戲結束',150,300); } } //事件監聽 @Override public void actionPerformed(ActionEvent e) { } @Override public void keyPressed(KeyEvent e) { int keyCode=e.getKeyCode(); if(keyCode==KeyEvent.VK_UP){ fx='up'; }if (keyCode==KeyEvent.VK_DOWN){ fx='down'; }if (keyCode==KeyEvent.VK_LEFT){ fx='left'; }if (keyCode==KeyEvent.VK_RIGHT){ fx='right'; } } @Override public void keyTyped(KeyEvent e) { } @Override public void keyReleased(KeyEvent e) { } /** * main方法 * @param args */ public static void main(String[] args) { new Snake(); }}

運行圖片

java實現簡易貪吃蛇游戲

游戲結束

java實現簡易貪吃蛇游戲

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 中文字幕成人免费高清在线 | 欧美日韩综合精品一区二区三区 | 日韩精品一区二区三区中文在线 | 女bbbbxxxx毛片视频0 | 日韩亚洲在线 | 国产精品免费视频一区二区三区 | 国内精品影院久久久久 | 国产精品va一级二级三级 | 性欧美videofree中文字幕 | 久久精品国产400部免费看 | 天堂视频在线免费观看 | 亚洲综合图片人成综合网 | 12一15女人a毛片 | 国产精品国色综合久久 | 美女张腿男人桶免费视频 | 成人精品一级毛片 | 中国一级特黄真人毛片 | 特级毛片a级毛免费播放 | 久久久久久青草大香综合精品 | 日韩精品亚洲人成在线观看 | 手机看片1024久久精品你懂的 | 欧美一级免费在线观看 | 国产美女三级做爰 | 国产手机看片 | bt天堂国产亚洲欧美在线 | 欧美三级色 | 日韩欧美精品综合一区二区三区 | 看美国毛片 | 成 人 黄 色 视频播放16 | 一区二区三区四区视频在线观看 | 九九视频只有精品六 | 国产精品一级视频 | 美女曰皮 | 亚洲欧美卡通成人制服动漫 | 久草在线免费色站 | 未成人做爰视频www 窝窝午夜精品一区二区 | 国产一级一片免费播放i | 久久国产精品99久久久久久牛牛 | 岛国在线免费观看 | 久久综合一区二区三区 | 99久久免费精品国产免费 |