微信小程序 > 微信公开课 > 贪吃蛇 java代码
微信小程序,微信公开课,贪吃蛇 java代码

贪吃蛇 java代码

2019-03-12 17:02:19

微信公开课小程序热门讨论「贪吃蛇 java代码」最新回复-自己写着玩的,很简单,你试一试哦...主要用了javax.swing.Timer这个类:importjava.awt.*;importjavax.swing.*;@SuppressWarnings(serial)publicclassMainClassextendsJFrame{ControlSnakecontrol;Toolkitkit;Dimensiondimen;publicstaticvoidmain(String[]args){newMainClass(mysnake);}publicMainClass(Strings){super(s);control=newControlSnake();control.setFocusable(true);kit=Toolkit.getDefaultToolkit();dimen=kit.getScreenSize();add(control);setLayout(newBorderLayout());setLocation(dimen.width/3,dimen.height/3);//dimen.width/3,dimen.height/3setSize(FWIDTH,FHEIGHT);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setResizable(false);setVisible(true);}publicstaticfinalintFWIDTH=315;publicstaticfinalintFHEIGHT=380;}importjava.util.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.Timer;importjava.util.Random;@SuppressWarnings(serial)publicclassControlSnakeextendsJPanelimplementsActionListener{Randomrand;ArrayListPointlist,listBody;Stringstr,str1;staticbooleankey;intx,y,dx,dy,fx,fy,flag;intsnakeBody;intspeed;publicControlSnake(){snakeBody=1;str=上下左右方向键控制P键暂停...;str1=现在的长度为:+snakeBody;key=true;flag=1;speed=700;rand=newRandom();list=newArrayListPoint();listBody=newArrayListPoint();x=5;y=5;list.add(newPoint(x,y));listBody.add(list.get(0));dx=10;dy=0;fx=rand.nextInt(30)*10+5;//2fy=rand.nextInt(30)*10+5;//2setBackground(Color.WHITE);setSize(newDimension(318,380));finalTimertime=newTimer(speed,this);time.start();addKeyListener(newKeyAdapter(){publicvoidkeyPressed(KeyEvente){if(e.getKeyCode()==37){dx=10;dy=0;}elseif(e.getKeyCode()==38){dx=0;dy=10;}elseif(e.getKeyCode()==39){dx=10;dy=0;}elseif(e.getKeyCode()==40){dx=0;dy=10;}elseif(e.getKeyCode()==80){if(flag%2==1){time.stop();}if(flag%2==0){time.start();}flag++;}}});}publicvoidpaint(Graphicsg){g.setColor(Color.WHITE);g.fillRect(0,0,400,400);g.setColor(Color.DARK_GRAY);g.drawLine(3,3,305,3);g.drawLine(3,3,3,305);g.drawLine(305,3,305,305);g.drawLine(3,305,305,305);g.setColor(Color.PINK);for(inti=0;ilistBody.size();i++){g.fillRect(listBody.get(i).x,listBody.get(i).y,9,9);}g.fillRect(x,y,9,9);g.setColor(Color.ORANGE);g.fillRect(fx,fy,9,9);g.setColor(Color.DARK_GRAY);str1=现在的长度为:+snakeBody;g.drawString(str,10,320);g.drawString(str1,10,335);}publicvoidactionPerformed(ActionEvente){x+=dx;y+=dy;if(makeOut()==false){JOptionPane.showMessageDialog(null,重新开始......);speed=700;snakeBody=1;x=5;y=5;list.clear();list.add(newPoint(x,y));listBody.clear();listBody.add(list.get(0));dx=10;dy=0;}addPoint(x,y);if(x==fx&&y==fy){speed=(int)(speed*0.8);//速度增加参数if(speed200){speed=100;}fx=rand.nextInt(30)*10+5;//2fy=rand.nextInt(30)*10+5;//2snakeBody++;//2}//2repaint();}publicvoidaddPoint(intxx,intyy){//动态的记录最新发生的50步以内的移动过的坐标//并画出最新的snakeBodyif(list.size()100){//蛇身长度最长为100list.add(newPoint(xx,yy));}else{list.remove(0);list.add(newPoint(xx,yy));}if(snakeBody==1){listBody.remove(0);listBody.add(0,list.get(list.size()1));}else{listBody.clear();if(list.size()snakeBody){for(inti=list.size()1;i0;i){listBody.add(list.get(i));}}else{for(inti=list.size()1;listBody.size()snakeBody;i){listBody.add(list.get(i));}}}}publicbooleanmakeOut(){if((x3||y3)||(x305||y305)){returnfalse;}for(inti=0;ilistBody.size()1;i++){for(intj=i+1;jlistBody.size();j++){if(listBody.get(i).equals(listBody.get(j))){returnfalse;}}}returntrue;}}
主要用了javax.swing.Timer这个类:importjava.awt.*;importjavax.swing@SuppressWarnings(serial)publicclassMainClassextendsJFrame{ControlSnakecontrol;Toolkitkit;Dimensiondimen;publicstaticvoidmain(String[]args){newMainClass(mysnake);}publicMainClass(Strings){super(s);control=newControlSnake();control.setFocusable(true);kit=Toolkit.getDefaultToolkit();dimen=kit.getScreenSize();add(control);setLayout(newBorderLayout());setLocation(dimen.width/3,dimen.height/3);//dimen.width/3,dimen.height/3setSize(FWIDTH,FHEIGHT);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setResizable(false);setVisible(true);}publicstaticfinalintFWIDTH=315;publicstaticfinalintFHEIGHT=380;}importjava.util.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.Timer;importjava.util.Random;@SuppressWarnings(serial)publicclassControlSnakeextendsJPanelimplementsActionListener{Randomrand;ArrayListPointlist,listBody;Stringstr,str1;staticbooleankey;intx,y,dx,dy,fx,fy,flag;intsnakeBody;intspeed;publicControlSnake(){snakeBody=1;str=上下左右方向键控制P键暂停...;str1=现在的长度为:+snakeBody;key=true;flag=1;speed=700;rand=newRandom();list=newArrayListPoint();listBody=newArrayListPoint();x=5;y=5;list.add(newPoint(x,y));listBody.add(list.get(0));dx=10;dy=0;fx=rand.nextInt(30)*10+5;//2fy=rand.nextInt(30)*10+5;//2setBackground(Color.WHITE);setSize(newDimension(318,380));finalTimertime=newTimer(speed,this);time.start();addKeyListener(newKeyAdapter(){publicvoidkeyPressed(KeyEvente){if(e.getKeyCode()==37){dx=-10;dy=0;}elseif(e.getKeyCode()==38){dx=0;dy=-10;}elseif(e.getKeyCode()==39){dx=10;dy=0;}elseif(e.getKeyCode()==40){dx=0;dy=10;}elseif(e.getKeyCode()==80){if(flag%2==1){time.stop();}if(flag%2==0){time.start();}flag++;}}});}publicvoidpaint(Graphicsg){g.setColor(Color.WHITE);g.fillRect(0,0,400,400);g.setColor(Color.DARK_GRAY);g.drawLine(3,3,305,3);g.drawLine(3,3,3,305);g.drawLine(305,3,305,305);g.drawLine(3,305,305,305);g.setColor(Color.PINK);for(inti=0;ilistBody.size();i++){g.fillRect(listBody.get(i).x,listBody.get(i).y,9,9);}g.fillRect(x,y,9,9);g.setColor(Color.ORANGE);g.fillRect(fx,fy,9,9);g.setColor(Color.DARK_GRAY);str1=现在的长度为:+snakeBody;g.drawString(str,10,320);g.drawString(str1,10,335);}publicvoidactionPerformed(ActionEvente){x+=dx;y+=dy;if(makeOut()==false){JOptionPane.showMessageDialog(null,重新开始......);speed=700;snakeBody=1;x=5;y=5;list.clear();list.add(newPoint(x,y));listBody.clear();listBody.add(list.get(0));dx=10;dy=0;}addPoint(x,y);if(x==fx&&y==fy){speed=(int)(speed*0.8);//速度增加参数if(speed200){speed=100;}fx=rand.nextInt(30)*10+5;//2fy=rand.nextInt(30)*10+5;//2snakeBody++;//2}//2repaint();}publicvoidaddPoint(intxx,intyy){//动态的记录最新发生的50步以内的移动过的坐标//并画出最新的snakeBodyif(list.size()100){//蛇身长度最长为100list.add(newPoint(xx,yy));}else{list.remove(0);list.add(newPoint(xx,yy));}if(snakeBody==1){listBody.remove(0);listBody.add(0,list.get(list.size()-1));}else{listBody.clear();if(list.size()snakeBody){for(inti=list.size()-1;i0;i--){listBody.add(list.get(i));}}else{for(inti=list.size()-1;listBody.size()snakeBody;i--){listBody.add(list.get(i));}}}}publicbooleanmakeOut(){if((x3||y3)||(x305||y305)){returnfalse;}for(inti=0;ilistBody.size()-1;i++){for(intj=i+1;jlistBody.size();j++){if(listBody.get(i).equals(listBody.get(j))){returnfalse;}}}returntrue;}} 更多有关「贪吃蛇 java代码」的疑问请扫码关注微信公开课+小程序!
标签:微信公开课,小程序
微信小程序,微信公开课,贪吃蛇 java代码

「贪吃蛇 java代码」热议话题订阅

方法1:微信扫描微信公开课小程序码即可订阅热议话题「贪吃蛇 java代码」

方法2:微信搜索微信公开课小程序名称进入,即可订阅热议话题「贪吃蛇 java代码」

方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热议话题「贪吃蛇 java代码」

微信公开课小程序热议话题「贪吃蛇 java代码」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。

微信公开课热议话题「贪吃蛇 java代码」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。