首页 > 游戏八卦 >  > 

王者荣耀贪吃蛇小游戏解说 贪吃蛇王者视频

小周给大家谈谈王者荣耀贪吃蛇小游戏解说,以及贪吃蛇王者视频应用的知识点,希望对你所遇到的问题有所帮助。

1、add(my,BorderLayout.CENTER);贪吃蛇importja.awt.;importja.awt.nt.;publicclassGreedSnake//主类{/@paramargs/publicstaticmain(String[]args){//TODOAuto-generatedmodstubnewMyWindow();}}classMyPanelPanelimplementsKeyListener,Runnable//自定义面板类,继承了键盘和线程接口{Buttonsnake[];//定义蛇按钮shu=0;//蛇的节数food[];//食物数组result=true;//判定结果是输还是赢Threadthread;//定义线程staticweix,weiy;//食物位置t=true;//判定游戏是否结束fangxiang=0;//蛇移动方向x=0,y=0;//蛇头位置MyPanel()snake=newfood=new[20];thread=newThread(this);for(intj=0;j{food[j]=(int)(Math.random()99);//定义20个随机食物}weix=(int)(food[0]0.1)60;//十位60为横坐标weiy=(int)(food[0]%10)40;//个位40为纵坐标for(inti=0;i{snake[i]=newButton();}add(snake[0]);snake[0].setBackground(Color.black);snake[0].addKeyListener(this);//为蛇头添加键盘监视器snake[0].setBounds(0,0,10,10);setBackground(Color.cyan);}publicrun()//接收线程{while(t){if(fangxiang==0)//向右{try{x+=10;snake[0].setLocation(x,y);//设置蛇头位置if(x==weix&&y==weiy)//吃到食物{shu++;weix=(int)(food[shu]0.1)60;weiy=(int)(food[shu]%10)40;repaint();//重绘下一个食物add(snake[shu]);//增加蛇节数和位置snake[shu].setBounds(snake[shu-1].getBounds());}thread.sleep(100);//睡眠100ms}catch(Exceptione){}}elseif(fangxiang==1)//向左{try{x-=10;snake[0].setLocation(x,y);if(x==weix&&y==weiy){shu++;weix=(int)(food[shu]0.1)60;weiy=(int)(food[shu]%10)40;repaint();add(snake[shu]);snake[shu].setBounds(snake[shu-1].getBounds());}thread.sleep(100);}catch(Exceptione){}}elseif(fangxiang==2)//向上{try{y-=10;snake[0].setLocation(x,y);if(x==weix&&y==weiy){shu++;weix=(int)(food[shu]0.1)60;weiy=(int)(food[shu]%10)40;repaint();add(snake[shu]);snake[shu].setBounds(snake[shu-1].getBounds());}thread.sleep(100);}catch(Exceptione){}}elseif(fangxiang==3)//向下{try{y+=10;snake[0].setLocation(x,y);if(x==weix&&y==weiy){shu++;weix=(int)(food[shu]0.1)60;weiy=(int)(food[shu]%10)40;repaint();add(snake[shu]);snake[shu].setBounds(snake[shu-1].getBounds());}thread.sleep(100);}catch(Exceptione){}}intnum1=shu;while(num1>1)//判断是否咬自己的尾巴{if(snake[num1].getBounds().x==snake[0].getBounds().x&&snake[num1].getBounds().y==snake[0].getBounds().y){t=false;result=false;repaint();}num1--;}if(x=this.getWidth()||y=this.getHeight())//判断是否撞墙{t=false;result=false;repaint();}intnum=shu;while(num>0)//设置蛇节位置{snake[num].setBounds(snake[num-1].getBounds());num--;}if(shu==15)//如果蛇节数等于15则胜利{t=false;result=true;repaint();}}}publickeyPressed(KeyEvente)//按下键盘方向键{if(e.getKeyCode()==KeyEvent.VK_RIGHT)//右键{if(fangxiang!=1)//如果先前方向不为左fangxiang=0;}else{if(fangxiang!=0)fangxiang=1;}elseif(e.getKeyCode()==KeyEvent.VK_UP){if(fangxiang!=3)fangxiang=2;}elseif(e.getKeyCode()==KeyEvent.VK_DOWN){if(fangxiang!=2)fangxiang=3;}}publickeyTyped(KeyEvente){}publickeyReleased(KeyEvente){}publicpaint(Graphicsg)//在面板上绘图{intx1=this.getWidth()-1;y1=this.getHeight()-1;g.setColor(Color.red);g.fillOval(weix,weiy,10,10);//食物g.drawRect(0,0,x1,y1);//墙if(t==false&&result==false)g.drawString("GAMEOVER!",,200);//输出游戏失败elseg.drawString("YOUWIN!",,200);//输出游戏成功}}classMyWindowFrameimplementsActionListener//自定义窗口类{MyPanelmy;Buttonbtn;Panelpanel;MyWindow(){super("GreedSnake");my=newMyPanel();btn=newButton("begin");panel=newPanel();btn.addActionListener(this);panel.add(newpanel.add(btn);panel.add(newLabel("按上下左右键控制蛇行动"));add(panel,BorderLayout.NORTH);setBounds(100,100,610,500);setVisible(true);validate();addWindowListener(newWindowAdapter(){publicwindowClosing(WindowEvente){System.exit(void delete_tail();0);}});}publicactionPerformed(ActionEvente)//按下begin按钮{if(e.getSource()==btn){try{my.thread.start();//开始线程my.validate();}catch(Exceptionee){}}}}这是我专科二年级学期的Ja课程设计,贪吃蛇是很多人知晓的游戏,但是我做了创新,主要有移动障碍物、穿越、创建关卡、AI,其中移动障碍物,穿越丰富游戏,AI用到了BFS算法,用了IO流保存地图数据。

本文到这结束,希望上面文章对大家有所帮助。

版权声明:本文内容由互联网用户自发贡献。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 836084111@qq.com,本站将立刻删除。