java简单贪吃蛇代码_第1页
java简单贪吃蛇代码_第2页
java简单贪吃蛇代码_第3页
java简单贪吃蛇代码_第4页
java简单贪吃蛇代码_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/ 包含文件/ 定义 WH_panel 的实例/ 定义菜单实例/ 构造函数/ 框架名称 / 获得框架容器/ 设置 frame 的大小/ 设置框架布局/ 定义菜单实例/ 设置菜单/ 主菜单/ 下拉菜单项;for(i=0;im.length;i+) wh_bar.add(mi); for(j=0;jmii.length;j+) mi.add(miij);mi00.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) / 添加菜单/ 添加下拉菜单/ 小于菜单的长度/ 添加/for/for/ 设

2、置菜单监听/try panel.thread.start();panel.right();/ 开始线程/ 直接执行 right 函数/* 贪吃蛇*/ import java.awt.*;import javax.swing.*;import java.awt.event.*;public class GreedSnack extends JFrameint i,j;WH_panel panel; JMenuBar wh_bar; public GreedSnack() super( 贪吃蛇 -game-); Container c=getContentPane(); setBounds(200

3、, 200, 620, 465); c.setLayout(null); wh_bar=new JMenuBar(); setJMenuBar(wh_bar);JMenum=new JMenu( 文件 ),new JMenu( 编辑 ); JMenuItemmi=new JMenuItem( 开始 ),new JMenuItem( 退出 ), / 设计菜单的内容 new JMenuItem( 分数 ),new JMenuItem( 记录分 )/ 对线程进行捕获错误catch(Exception ee)精选文库14);addKeyListe ner(new KeyAda pter()p ubli

4、c void keyP ressed(KeyEve nt e)if(e.getKeyCode()=KeyEve nt.VK_LEFT) pan el.left();if(e.getKeyCode()=KeyEve nt.VK_RIGHT) pan el.right();if(e.getKeyCode()=KeyEve nt.VK_ UP) pan el.u p();if(e.getKeyCode()=KeyEve nt.VK_DOWN) pan el.dow n();/键盘监听P ublic void keyT yp ed(KeyEve nt e) public void keyRelease

5、d(KeyEvent e) /监听左键/执行left函数/监听右键/执行right函数/监听上键/执行up函数/监听下键/执行down函数/键盘事件);panel=new WH_pan el();pan el.setLayout (n ull);c.add( pan el);p ublic static void main( Stri ng args)/panel 布局/ 添加 panel/主函数Greeds nack app=new GreedS nack();app .setDefaultClose Op erati on (JFrame.EXIT_ON_CLOSE);app. setVi

6、sible(true);class WH_panel exte nds JPanel impi eme nts Runn able Thread thread;int x=0,y=0,wh_direct=0;int food_x=60,food_y=80;int d_l,d_r,d_u,d_d;int i,j,wh_st op;int food_date;in t wh_array=new in t3020;p ublic WH_pan el()this.setBou nds(0, 0,600,400);thread=new Thread(this);for(i=0;i30;i+)for(j=

7、0;j=20&y=0&x=580&y=0&y =0&x=560& y=0&y=20&x=580&y=0&y =0&x=580& y=360) if(wh_arrayx/ 20y/20+1!=0)wh_st op=1;y=y+20;wh_ru n();/规定范围/当下一个有蛇身/wh_st op=1/y坐标增大变化if(food_x=x&food_y=y)/蛇头的坐标与食物相同food_x=(i nt)(Math.ra ndom()*30)*20; food_y=(i nt)(Math.ra ndom()*20)*20;/随机食物坐标X/随机食物坐标丫rep ai nt();food_date=

8、food_date+1;/刷新绘图/食物数进行自加if(x=600|y=400|x0|y=0&y=0& x=580&y=380)wh_arrayx/ 20y/20=1;for(i=0;i30;i+)for(j=0;j20;j+)if(wh_arrayij!=0)wh_arrayij=wh_arrayij+1;repain t();wh_slee p(200);for(i=0;i30;i+)/当坐标满足数组范围时/此时蛇头数组值为1/检测整个数组/y小于20/如果数组中含有不为0的值/对其加1操作/if/for/for/从绘窗口/睡眠/给数组付初值for(j=0;jfood_date+1)wh_

9、arrayij=0;/若蛇身长度大于食物数加 1p rotected void pain tCo mponen t(Gra phics g)g.setColor(Color.getHSBColor(0, 0, 200);g.fillRect(0, 0, this.getWidth(), this.getHeight();for(i=0;i30;i+)for(j=0;j20;j+)/将值变为0/if/for/for/wh_ru n()/绘图函数/panel背景颜色/检测数组/y坐标小于20if(wh_arrayij!=0)/在wh_array不为0时g.setColor(Color.BLUE);

10、g.fillRect(20*i, 20*j, 20, 20);g.setColor(Color.lightGray);g.drawRect(20*i, 20*j, 20, 20);/蛇身颜色/画蛇身/蛇身外框颜色/蛇身外框/if/forg.setColor(Color.RED);g.fillOval(food_x,food_y,20,20);if(x=600|y=400|x0|y0|wh_sto p=1)g.setColor(Color.getHSBColor(0, 0, 200);g.fillRect(0, 0, this.getWidth(), this.getHeight();g.setColor(Color.BLACK);g.drawStri ng(game over, 250, 150);/pain tCo mponent/forII食物颜色II画食物II当蛇撞墙时/panel背景颜色II画矩形充当背景II设置字符串颜色II 输出 game overI/ifp ublic static void wh_slee p(l ong

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论