电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

java實現簡單貪吃蛇小游戲

瀏覽:109日期:2022-08-11 17:18:23

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

有兩個類,放在同一文件下下即可,背景圖片,標題,蛇尾可自行更改

import java.awt.*;import javax.swing.*;import java.awt.event.*;public class MyJFrame extends JFrame{ public MyJFrame() { int x= Toolkit.getDefaultToolkit().getScreenSize().width; int y = Toolkit.getDefaultToolkit().getScreenSize().height; setLocation((x-800)/2, (y-800)/2); setSize(800,800); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); setTitle('貪吃蛇'); setLayout(null); getLayeredPane().setLayout(null); JLabel background = new JLabel(new ImageIcon('C:UsersHPDesktopjavaabackground3.jpg'));//注意此處路徑 JLabel title = new JLabel(new ImageIcon('C:UsersHPDesktopjavaatitle1.jpg'));//注意此處路徑 background.setBounds(20,80,750,650); title.setBounds(0,0,800,75); getLayeredPane().add(background,new Integer(Integer.MIN_VALUE)); getLayeredPane().add(title,new Integer(Integer.MIN_VALUE+1)); ((JPanel)getContentPane()).setOpaque(false); MyPanel mypanel = new MyPanel(); mypanel.setBounds(0,0,getWidth(),getHeight()); add(mypanel); } public static void main(String[] args) { new MyJFrame(); }}

import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.util.Random;public class MyPanel extends JPanel implements ActionListener{ int lenght ; int score1; Boolean jieshux = false; JLabel scorel = new JLabel('分數:'+score1); JLabel lenghl = new JLabel('長度:'+lenght); JLabel shibai = new JLabel('按下空格開始游戲!'); JLabel jieshu = new JLabel('游戲失敗!按空格重新開始!'); String dir = 'R'; Boolean isstart = false; int[][] snake = new int[300][2]; Random r = new Random(); int x,y; //初始化 public void initialize() { snake[0][0]=70; snake[0][1]=80; snake[1][0]=45; snake[1][1]=80; snake[2][0]=20; snake[2][1]=80; isstart = true; jieshux = false; lenght = 3; score1 = 0; dir = 'R'; repaint(); } public MyPanel() { setLayout(null); scorel.setBounds(700, 20, 50, 30); lenghl.setBounds(700, 40, 50, 30); shibai.setBounds(300,400,200,60); shibai.setFont(new Font('黑體',Font.BOLD,20)); jieshu.setFont(new Font('黑體',Font.BOLD,20)); jieshu.setVisible(false); jieshu.setBounds(250,400,300,60); add(scorel); add(lenghl); add(shibai); add(jieshu); x = r.nextInt(29)*25+20; y = r.nextInt(25)*25+80; //this.setFocusable(true); //焦點獲取 setOpaque(false); initialize(); Timer t = new Timer(200,this); this.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if(e.getKeyCode()==KeyEvent.VK_SPACE && isstart==false) { isstart=true; }else if(e.getKeyCode()==KeyEvent.VK_SPACE && isstart==true &&jieshux == false){ isstart = false; }else if(e.getKeyCode()==KeyEvent.VK_W && isstart==true && dir!='D'&&jieshux == false) { dir='U'; }else if(e.getKeyCode()==KeyEvent.VK_A && isstart==true && dir!='R'&&jieshux == false) { dir='L'; }else if(e.getKeyCode()==KeyEvent.VK_D && isstart==true && dir!='L'&&jieshux == false) { dir='R'; }else if(e.getKeyCode()==KeyEvent.VK_S && isstart==true && dir!='U'&&jieshux == false) { dir='D'; }else if(e.getKeyCode()==KeyEvent.VK_SPACE && jieshux==true) { initialize(); } } }); t.start(); } @Override public void actionPerformed(ActionEvent e) { this.requestFocus(true); if(isstart&&dir.equals('R')&&!jieshux) { for(int i=0;i<lenght-1;i++) { if(snake[i][0]>=745) { //snake[i][0]=20; jieshux = !jieshux; //isstart = !isstart; break; }else { snake[lenght-i-1][0]=snake[lenght-i-2][0]; snake[lenght-i-1][1]=snake[lenght-i-2][1]; } } if(!jieshux) snake[0][0]=snake[1][0]+25; } else if(isstart&&dir.equals('D')&&!jieshux) { for(int i=0;i<lenght-1;i++) { if(snake[i][1]>=705) { //snake[i][1]=80; jieshux = !jieshux; //isstart = !isstart; break; }else { snake[lenght-i-1][0]=snake[lenght-i-2][0]; snake[lenght-i-1][1]=snake[lenght-i-2][1]; } } if(!jieshux) snake[0][1]=snake[1][1]+25; }else if(isstart&&dir.equals('U')&&!jieshux) { for(int i=0;i<lenght-1;i++) { if(snake[i][1]<=80) { //snake[i][1]=705; jieshux = !jieshux; //isstart = !isstart; break; }else { snake[lenght-i-1][0]=snake[lenght-i-2][0]; snake[lenght-i-1][1]=snake[lenght-i-2][1]; } } if(!jieshux) snake[0][1]=snake[1][1]-25; }else if(isstart&&dir.equals('L')&&!jieshux) { for(int i=0;i<lenght-1;i++) { if(snake[i][0]<=20) { jieshux = !jieshux; //isstart = !isstart; break; }else { snake[lenght-i-1][0]=snake[lenght-i-2][0]; snake[lenght-i-1][1]=snake[lenght-i-2][1]; } } if(!jieshux) snake[0][0]=snake[1][0]-25; } if(snake[0][1]==y&&snake[0][0]==x) { x = r.nextInt(29)*25+20; y = r.nextInt(25)*25+80;score1+=10; lenght++; snake[lenght-1][1]=snake[lenght-2][1]; snake[lenght-1][0]=snake[lenght-2][0];add(scorel); add(lenghl); } if(isstart==false) { shibai.setVisible(true); }else { shibai.setVisible(false); if(jieshux == false) { jieshu.setVisible(false); }else { jieshu.setVisible(true); } } for(int i = 1;i<lenght;i++) { if(snake[0][0]==snake[i][0]&&snake[0][1]==snake[i][1]) { jieshux=true; } } if(isstart&&!jieshux)repaint(); } public void paint(Graphics g) { super.paint(g); //邊界為(20,80),(770,730) scorel.setText('分數:'+score1); lenghl.setText('長度:'+lenght); g.drawLine(18, 78, 18, 732); g.drawLine(18, 78, 772, 78); g.drawLine(18, 732, 772, 732); g.drawLine(772, 78, 772, 732); //豎線 for(int i=20;i<=770;i+=25) { g.drawLine(i,80,i,730); //g.drawLine(0,i,600,i); } //橫線 for(int i=80;i<=750;i+=25) { //g.drawLine(i,50,i,780); g.drawLine(20,i,770,i); } for(int i = 0;i<lenght;i++) { if(i>0) { g.drawImage(new ImageIcon('C:UsersHPDesktopjavaabody.png').getImage(), snake[i][0],snake[i][1],this);//注意此處路徑 }else { g.fillOval(snake[i][0], snake[i][1], 25, 25); } } g.setColor(Color.red); g.fillOval(x, y, 25, 25); }}

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

標簽: Java
相關文章:
主站蜘蛛池模板: 防水试验机_防水测试设备_防水试验装置_淋雨试验箱-广州岳信试验设备有限公司 | 粘弹体防腐胶带,聚丙烯防腐胶带-全民塑胶| 气动|电动调节阀|球阀|蝶阀-自力式调节阀-上海渠工阀门管道工程有限公司 | 金现代信息产业股份有限公司--数字化解决方案供应商 | 真空搅拌机-行星搅拌机-双行星动力混合机-广州市番禺区源创化工设备厂 | 氧氮氢联合测定仪-联测仪-氧氮氢元素分析仪-江苏品彦光电 | 双齿辊破碎机-大型狼牙破碎机视频-对辊破碎机价格/型号图片-金联机械设备生产厂家 | 北京企业宣传片拍摄_公司宣传片制作-广告短视频制作_北京宣传片拍摄公司 | 航空障碍灯_高中低光强航空障碍灯_民航许可认证航空警示灯厂家-东莞市天翔航天科技有限公司 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 电线电缆厂家|沈阳电缆厂|电线厂|沈阳英联塑力线缆有限公司 | 东莞ERP软件_广州云ERP_中山ERP_台湾工厂erp系统-广东顺景软件科技有限公司 | 超声波焊接机_超音波熔接机_超声波塑焊机十大品牌_塑料超声波焊接设备厂家 | 六维力传感器_六分量力传感器_模腔压力传感器-南京数智微传感科技有限公司 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 全自动包装秤_全自动上袋机_全自动套袋机_高位码垛机_全自动包装码垛系统生产线-三维汉界机器(山东)股份有限公司 | 气密性检测仪_气密性检测设备_防水测试仪_密封测试仪-岳信仪器 | 全自动包衣机-无菌分装隔离器-浙江迦南科技股份有限公司 | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 防渗膜厂家|养殖防渗膜|水产养殖防渗膜-泰安佳路通工程材料有限公司 | 吉林污水处理公司,长春工业污水处理设备,净水设备-长春易洁环保科技有限公司 | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 北京公寓出租网-北京酒店式公寓出租平台| 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 懂研帝_专业SCI论文润色机构_SCI投稿发表服务公司 | 航空连接器,航空插头,航空插座,航空接插件,航插_深圳鸿万科 | 强效碱性清洗剂-实验室中性清洗剂-食品级高纯氮气发生器-上海润榕科学器材有限公司 | 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 减速机电机一体机_带电机减速器一套_德国BOSERL电动机与减速箱生产厂家 | 馋嘴餐饮网_餐饮加盟店火爆好项目_餐饮连锁品牌加盟指南创业平台 | 视觉检测设备_自动化检测设备_CCD视觉检测机_外观缺陷检测-瑞智光电 | 灌装封尾机_胶水灌装机_软管灌装封尾机_无锡和博自动化机械制造有限公司 | 一体化预制泵站-一体化提升泵站-一体化泵站厂家-山东康威环保 | 高压分散机(高压细胞破碎仪)百科-北京天恩瀚拓 | 防腐木批发价格_深圳_惠州_东莞防腐木厂家_森源(深圳)防腐木有限公司 | 隐形纱窗|防护纱窗|金刚网防盗纱窗|韦柏纱窗|上海青木装潢制品有限公司|纱窗国标起草单位 | 盘古网络技术有限公司 | 生物颗粒燃烧机-生物质燃烧机-热风炉-生物颗粒蒸汽发生器-丽水市久凯能源设备有限公司 | 精益专家 - 设备管理软件|HSE管理系统|设备管理系统|EHS安全管理系统 | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | 金属回收_废铜废铁回收_边角料回收_废不锈钢回收_废旧电缆线回收-广东益夫金属回收公司 |