
java贪吃蛇代码注释求解
2019-03-12 17:02:19
微信公开课小程序热门讨论「java贪吃蛇代码注释求解」最新回复-importjava.awt.Color;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.Rectangle;importjava.awt.event.KeyAdapter;importjava.awt.event.KeyEvent;importjava.awt.image.BufferedImage;importjava.util.ArrayList;importjava.util.List;importjavax.swing.JFrame;publicclassInterFaceextendsJFrame{/***WIDTH:宽*HEIGHT:高*SLEEPTIME:可以看作蛇运动的速度*L=1,R=2,U=3,D=4左右上下代码*/publicstaticfinalintWIDTH=800,HEIGHT=600,SLEEPTIME=200,L=1,R=2,U=3,D=4;BufferedImageoffersetImage=newBufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_3BYTE_BGR);;Rectanglerect=newRectangle(20,40,15*50,15*35);Snakesnake;Nodenode;publicInterFace(){//创建蛇对象snake=newSnake(this);//创建食物对象createNode();this.setBounds(100,100,WIDTH,HEIGHT);//添加键盘监听器this.addKeyListener(newKeyAdapter(){publicvoidkeyPressed(KeyEventarg0){System.out.println(arg0.getKeyCode());switch(arg0.getKeyCode()){//映射上下左右4个键位caseKeyEvent.VK_LEFT:snake.dir=L;break;caseKeyEvent.VK_RIGHT:snake.dir=R;break;caseKeyEvent.VK_UP:snake.dir=U;break;caseKeyEvent.VK_DOWN:snake.dir=D;}}});this.setTitle(贪吃蛇0.1By:Easy);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true);//启动线程,开始执行newThread(newThreadUpadte()).start();}publicvoidpaint(Graphicsg){Graphics2Dg2d=(Graphics2D)offersetImage.getGraphics();g2d.setColor(Color.white);g2d.fillRect(0,0,WIDTH,HEIGHT);g2d.setColor(Color.black);g2d.drawRect(rect.x,rect.y,rect.width,rect.height);//如果蛇碰撞(吃)到食物,则创建新食物if(snake.hit(node)){createNode();}snake.draw(g2d);node.draw(g2d);g.drawImage(offersetImage,0,0,null);}classThreadUpadteimplementsRunnable{publicvoidrun(){//无限重绘画面while(true){try{Thread.sleep(SLEEPTIME);repaint();//}catch(InterruptedExceptione){e.printStackTrace();}}}}/***创建食物*/publicvoidcreateNode(){//随机食物的出现位置intx=(int)(Math.random()*650)+50,y=(int)(Math.random()*500)+50;Colorcolor=Color.blue;node=newNode(x,y,color);}publicstaticvoidmain(Stringargs[]){newInterFace();}}/***节点类(包括食物和蛇的身躯组成节点)*/classNode{intx,y,width=15,height=15;Colorcolor;publicNode(intx,inty,Colorcolor){this(x,y);this.color=color;}publicNode(intx,inty){this.x=x;this.y=y;this.color=color.black;}publicvoiddraw(Graphics2Dg2d){g2d.setColor(color);g2d.drawRect(x,y,width,height);}publicRectanglegetRect(){returnnewRectangle(x,y,width,height);}}/***蛇*/classSnake{publicListNodenodes=newArrayListNode();InterFaceinterFace;intdir=InterFace.R;publicSnake(InterFaceinterFace){this.interFace=interFace;nodes.add(newNode(20+150,40+150));addNode();}/***是否碰撞到食物*@returntrue是false否*/publicbooleanhit(Nodenode){//遍历整个蛇体是否与食物碰撞for(inti=0;inodes.size();i++){if(nodes.get(i).getRect().intersects(node.getRect())){addNode();returntrue;}}returnfalse;}publicvoiddraw(Graphics2Dg2d){for(inti=0;inodes.size();i++){nodes.get(i).draw(g2d);}move();}publicvoidmove(){nodes.remove((nodes.size()1));addNode();}publicsynchronizedvoidaddNode(){NodenodeTempNode=nodes.get(0);//如果方向switch(dir){caseInterFace.L://判断是否会撞墙if(nodeTempNode.x=20){nodeTempNode=newNode(20+15*50,nodeTempNode.y);}nodes.add(0,newNode(nodeTempNode.xnodeTempNode.width,nodeTempNode.y));break;caseInterFace.R://判断是否会撞墙if(nodeTempNode.x=20+15*50nodeTempNode.width){nodeTempNode=newNode(20nodeTempNode.width,nodeTempNode.y);}nodes.add(0,newNode(nodeTempNode.x+nodeTempNode.width,nodeTempNode.y));break;caseInterFace.U://判断是否会撞墙if(nodeTempNode.y=40){nodeTempNode=newNode(nodeTempNode.x,40+15*35);}nodes.add(0,newNode(nodeTempNode.x,nodeTempNode.ynodeTempNode.height));break;caseInterFace.D://判断是否会撞墙if(nodeTempNode.y=40+15*35nodeTempNode.height){nodeTempNode=newNode(nodeTempNode.x,40nodeTempNode.height);}nodes.add(0,newNode(nodeTempNode.x,nodeTempNode.y+nodeTempNode.height));break;}}}
importjava.awt.Color; importjava.awt.Graphics; importjava.awt.Graphics2D; importjava.awt.Rectangle; importjava.awt.event.KeyAdapter; importjava.awt.event.KeyEvent; importjava.awt.image.BufferedImage; importjava.util.ArrayList; importjava.util.List; importjavax.swing.JFrame; publicclassInterFaceextendsJFrame{ publicstaticfinalintWIDTH=800,HEIGHT=600,SLEEPTIME=100,L=1,R=2,U=3,D=4; //widthandheightisforwindowssetup//sleeptimeistheintervalforscreentobeupdatedorrespondtoouroperationBufferedImageoffersetImage=newBufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_3BYTE_BGR);; //generatetheemptypicturefortheoperationRectanglerect=newRectangle(20,40,15*50,15*35); //setupRectanglewithx=20,y=40andheight=525width=750Snakesnake; Nodenode; publicInterFace(){ snake=newSnake(this); //generatethesnakecreateNode();//generatethefirsttargetnodethis.setBounds(100,100,WIDTH,HEIGHT); //settheplaceofthisprograminthescreen//addkeylistenerfunctionfortheprogramthis.addKeyListener(newKeyAdapter(){publicvoidkeyPressed(KeyEventarg0){System.out.println(arg0.getKeyCode()); //getthekeypresseventandcheckwhichsidetobechange switch(arg0.getKeyCode()){caseKeyEvent.VK_LEFT:snake.dir=L;break;caseKeyEvent.VK_RIGHT:snake.dir=R;break;caseKeyEvent.VK_UP:snake.dir=U;break;caseKeyEvent.VK_DOWN:snake.dir=D;}} }); this.setTitle(Snack0.1By:Easy); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); newThread(newThreadUpadte()).start(); //calltheendlesslooptoruntheprogram} publicvoidpaint(Graphicsg){ Graphics2Dg2d=(Graphics2D)offersetImage.getGraphics(); g2d.setColor(Color.white); g2d.fillRect(0,0,WIDTH,HEIGHT); //fillthewholepicturewithwhiteg2d.setColor(Color.black); //changetouseblackg2d.drawRect(rect.x,rect.y,rect.width,rect.height); //drawtherectforrelatedoperationnowif(snake.hit(node)){createNode(); //generatethenewnodeaftersnakeeattheformerone} snake.draw(g2d); //drawthesnakenode.draw(g2d); //drawthenodeg.drawImage(offersetImage,0,0,null); //showthewholepicturetopeoplenow}//theendlesslooptoexecutedtheprogramwithmultithreadoperationsclassThreadUpadteimplementsRunnable{ publicvoidrun(){while(true){try{Thread.sleep(SLEEPTIME);repaint(); //userepainttore-drawthepictureagain,systemwillcallthepaintfunctionabovetodothat }catch(InterruptedExceptione){e.printStackTrace();}} } } //generateanodewithrandomaddressforsnacktoeatpublicvoidcreateNode(){ intx=(int)(Math.random()*650)+50,y=(int)(Math.random()*500)+50; Colorcolor=Color.blue; node=newNode(x,y,color); } //themainfunctionforthewholeprogrampublicstaticvoidmain(Stringargs[]){ newInterFace(); } } classNode{ //theclassforthesmallnodetobeeatedbysnackintx,y,width=15,height=15; Colorcolor; publicNode(intx,inty,Colorcolor){ this(x,y); this.color=color; } publicNode(intx,inty){ this.x=x; this.y=y; this.color=color.black; } publicvoiddraw(Graphics2Dg2d){ g2d.setColor(color); g2d.drawRect(x,y,width,height); } publicRectanglegetRect(){ returnnewRectangle(x,y,width,height); } } classSnake{ publicListNodenodes=newArrayListNode(); //snackisformedbyseveralnodestogetherInterFaceinterFace; intdir=InterFace.R; publicSnake(InterFaceinterFace){ this.interFace=interFace; nodes.add(newNode(20+150,40+150)); //thestartplaceforthesnackisx=170,y=190addNode(); //movethesnacknow} publicbooleanhit(Nodenode){ for(inti=0;inodes.size();i++){if(nodes.get(i).getRect().intersects(node.getRect())){addNode();returntrue;} } returnfalse; } publicvoiddraw(Graphics2Dg2d){ for(inti=0;inodes.size();i++){nodes.get(i).draw(g2d); } move(); } //movetoanewplacepublicvoidmove(){ nodes.remove((nodes.size()-1)); addNode(); } //thebelowfunctionareusedeachtimestampofSLEEPTIMEtoupdatethecurrentpicturepublicsynchronizedvoidaddNode(){ NodenodeTempNode=nodes.get(0); switch(dir){ caseInterFace.L: if(nodeTempNode.x=20){ //thisisjusttoshowthecasetheheadofsnackhittheleftsideandswitchtoshowitontherightside nodeTempNode=newNode(20+15*50,nodeTempNode.y); System.out.println(hittheleftsideofwindowsnow.); }nodes.add(0,newNode(nodeTempNode.x-nodeTempNode.width,nodeTempNode.y));break; caseInterFace.R: if(nodeTempNode.x=20+15*50-nodeTempNode.width){ //thisisjusttoshowthecasetheheadofsnackhittherightsideandswitchtoshowitontheleftside nodeTempNode=newNode(20-nodeTempNode.width,nodeTempNode.y); System.out.println(hittherightsideofwindowsnow.); }nodes.add(0,newNode(nodeTempNode.x+nodeTempNode.width,nodeTempNode.y));break; caseInterFace.U: if(nodeTempNode.y=40){ //thisisjusttoshowthecasetheheadofsnackhittheuppersideandswitchtoshowitonthedownside nodeTempNode=newNode(nodeTempNode.x,40+15*35); System.out.println(hittheuppersideofwindowsnow.); }nodes.add(0,newNode(nodeTempNode.x,nodeTempNode.y-nodeTempNode.height));break; caseInterFace.D: if(nodeTempNode.y=40+15*35-nodeTempNode.height){ //thisisjusttoshowthecasetheheadofsnackhittheDownsideandswitchtoshowitontheupperside nodeTempNode=newNode(nodeTempNode.x,40-nodeTempNode.height); System.out.println(hittheDownsideofwindowsnow.); }nodes.add(0,newNode(nodeTempNode.x,nodeTempNode.y+nodeTempNode.height));break; } } } 更多有关「java贪吃蛇代码注释求解」的疑问请扫码关注微信公开课+小程序!
importjava.awt.Color; importjava.awt.Graphics; importjava.awt.Graphics2D; importjava.awt.Rectangle; importjava.awt.event.KeyAdapter; importjava.awt.event.KeyEvent; importjava.awt.image.BufferedImage; importjava.util.ArrayList; importjava.util.List; importjavax.swing.JFrame; publicclassInterFaceextendsJFrame{ publicstaticfinalintWIDTH=800,HEIGHT=600,SLEEPTIME=100,L=1,R=2,U=3,D=4; //widthandheightisforwindowssetup//sleeptimeistheintervalforscreentobeupdatedorrespondtoouroperationBufferedImageoffersetImage=newBufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_3BYTE_BGR);; //generatetheemptypicturefortheoperationRectanglerect=newRectangle(20,40,15*50,15*35); //setupRectanglewithx=20,y=40andheight=525width=750Snakesnake; Nodenode; publicInterFace(){ snake=newSnake(this); //generatethesnakecreateNode();//generatethefirsttargetnodethis.setBounds(100,100,WIDTH,HEIGHT); //settheplaceofthisprograminthescreen//addkeylistenerfunctionfortheprogramthis.addKeyListener(newKeyAdapter(){publicvoidkeyPressed(KeyEventarg0){System.out.println(arg0.getKeyCode()); //getthekeypresseventandcheckwhichsidetobechange switch(arg0.getKeyCode()){caseKeyEvent.VK_LEFT:snake.dir=L;break;caseKeyEvent.VK_RIGHT:snake.dir=R;break;caseKeyEvent.VK_UP:snake.dir=U;break;caseKeyEvent.VK_DOWN:snake.dir=D;}} }); this.setTitle(Snack0.1By:Easy); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); newThread(newThreadUpadte()).start(); //calltheendlesslooptoruntheprogram} publicvoidpaint(Graphicsg){ Graphics2Dg2d=(Graphics2D)offersetImage.getGraphics(); g2d.setColor(Color.white); g2d.fillRect(0,0,WIDTH,HEIGHT); //fillthewholepicturewithwhiteg2d.setColor(Color.black); //changetouseblackg2d.drawRect(rect.x,rect.y,rect.width,rect.height); //drawtherectforrelatedoperationnowif(snake.hit(node)){createNode(); //generatethenewnodeaftersnakeeattheformerone} snake.draw(g2d); //drawthesnakenode.draw(g2d); //drawthenodeg.drawImage(offersetImage,0,0,null); //showthewholepicturetopeoplenow}//theendlesslooptoexecutedtheprogramwithmultithreadoperationsclassThreadUpadteimplementsRunnable{ publicvoidrun(){while(true){try{Thread.sleep(SLEEPTIME);repaint(); //userepainttore-drawthepictureagain,systemwillcallthepaintfunctionabovetodothat }catch(InterruptedExceptione){e.printStackTrace();}} } } //generateanodewithrandomaddressforsnacktoeatpublicvoidcreateNode(){ intx=(int)(Math.random()*650)+50,y=(int)(Math.random()*500)+50; Colorcolor=Color.blue; node=newNode(x,y,color); } //themainfunctionforthewholeprogrampublicstaticvoidmain(Stringargs[]){ newInterFace(); } } classNode{ //theclassforthesmallnodetobeeatedbysnackintx,y,width=15,height=15; Colorcolor; publicNode(intx,inty,Colorcolor){ this(x,y); this.color=color; } publicNode(intx,inty){ this.x=x; this.y=y; this.color=color.black; } publicvoiddraw(Graphics2Dg2d){ g2d.setColor(color); g2d.drawRect(x,y,width,height); } publicRectanglegetRect(){ returnnewRectangle(x,y,width,height); } } classSnake{ publicListNodenodes=newArrayListNode(); //snackisformedbyseveralnodestogetherInterFaceinterFace; intdir=InterFace.R; publicSnake(InterFaceinterFace){ this.interFace=interFace; nodes.add(newNode(20+150,40+150)); //thestartplaceforthesnackisx=170,y=190addNode(); //movethesnacknow} publicbooleanhit(Nodenode){ for(inti=0;inodes.size();i++){if(nodes.get(i).getRect().intersects(node.getRect())){addNode();returntrue;} } returnfalse; } publicvoiddraw(Graphics2Dg2d){ for(inti=0;inodes.size();i++){nodes.get(i).draw(g2d); } move(); } //movetoanewplacepublicvoidmove(){ nodes.remove((nodes.size()-1)); addNode(); } //thebelowfunctionareusedeachtimestampofSLEEPTIMEtoupdatethecurrentpicturepublicsynchronizedvoidaddNode(){ NodenodeTempNode=nodes.get(0); switch(dir){ caseInterFace.L: if(nodeTempNode.x=20){ //thisisjusttoshowthecasetheheadofsnackhittheleftsideandswitchtoshowitontherightside nodeTempNode=newNode(20+15*50,nodeTempNode.y); System.out.println(hittheleftsideofwindowsnow.); }nodes.add(0,newNode(nodeTempNode.x-nodeTempNode.width,nodeTempNode.y));break; caseInterFace.R: if(nodeTempNode.x=20+15*50-nodeTempNode.width){ //thisisjusttoshowthecasetheheadofsnackhittherightsideandswitchtoshowitontheleftside nodeTempNode=newNode(20-nodeTempNode.width,nodeTempNode.y); System.out.println(hittherightsideofwindowsnow.); }nodes.add(0,newNode(nodeTempNode.x+nodeTempNode.width,nodeTempNode.y));break; caseInterFace.U: if(nodeTempNode.y=40){ //thisisjusttoshowthecasetheheadofsnackhittheuppersideandswitchtoshowitonthedownside nodeTempNode=newNode(nodeTempNode.x,40+15*35); System.out.println(hittheuppersideofwindowsnow.); }nodes.add(0,newNode(nodeTempNode.x,nodeTempNode.y-nodeTempNode.height));break; caseInterFace.D: if(nodeTempNode.y=40+15*35-nodeTempNode.height){ //thisisjusttoshowthecasetheheadofsnackhittheDownsideandswitchtoshowitontheupperside nodeTempNode=newNode(nodeTempNode.x,40-nodeTempNode.height); System.out.println(hittheDownsideofwindowsnow.); }nodes.add(0,newNode(nodeTempNode.x,nodeTempNode.y+nodeTempNode.height));break; } } } 更多有关「java贪吃蛇代码注释求解」的疑问请扫码关注微信公开课+小程序!
标签:微信公开课,小程序

「java贪吃蛇代码注释求解」热议话题订阅
方法1:微信扫描微信公开课小程序码即可订阅热议话题「java贪吃蛇代码注释求解」
方法2:微信搜索微信公开课小程序名称进入,即可订阅热议话题「java贪吃蛇代码注释求解」
方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热议话题「java贪吃蛇代码注释求解」
微信公开课小程序热议话题「java贪吃蛇代码注释求解」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。
微信公开课热议话题「java贪吃蛇代码注释求解」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。
微信公开课小程序
更新时间:2019-03-12 17:02:19
>
__methodCallerx27;ofundefined
>-404011cloudfunctionexecutionerror
>,请补充选择商家自营-预付卡销售-发行方类目,并在基础信息处申请该类目,通过
>:host在模拟器中显示无效
>:请在小程序服务页面上架正式(非测试)内容或商品后重新提交审核
>.net 微信小程序 上传图片
>'setTimeout'的问题
>‘三朵里熙SPA主题减压空间’为什么搜索关键词‘三朵里‘搜不到
>‘扫普通链接二维码打开小程序‘中设置为体验版,扫码打开是线上版本
>“cloudfunctions**indexjs”gitignore
>“NO ULINK DEVICE FOUND”是怎么回事
>“万马掌上校园”的类目审核
>“上线了”公司开发的微信小程序怎么样?
>“产品是否一定需要条形码”
>