java编写简易贪吃蛇游戏
本文实例为大家分享了java编写的贪吃蛇源码,供大家参考,具体内容如下
程序共包含以下两个文件:
文件:ShellWin.java
importjava.awt.Color;
importjava.awt.Dimension;
importjava.awt.FlowLayout;
importjava.awt.Graphics;
importjava.awt.event.*;
importjavax.swing.Box;
importjavax.swing.JButton;
importjavax.swing.JOptionPane;
importjavax.swing.JPanel;
@SuppressWarnings("serial")
publicclassShellWinextendsJPanelimplementsRunnable{//实现了键盘与鼠标两个接口
intdirection;
intlength;
intscore=0;
booleancontrol=false;
int[]xs=newint[400];//蛇的个数,xy,坐标控制
int[]ys=newint[400];
intdouX;intdouY;
Threadthread;
publicShellWin()
{
setPreferredSize(newDimension(600,600));
setLocation(100,100);
setBackground(Color.GREEN);
thread=newThread(this);//为这个类添加一个线程
create_snake();
create_bean();
}
publicvoidpaintComponent(Graphicsg)//绘制
{
super.paintComponent(g);//Jpanel内的方法,起到清屏的作用
g.drawString("分数:"+score,50,50);
g.drawRect(0,0,600,600);
show_snake(g);
show_bean(g);
}
//能不能吃豆,能不能死
voiddie()
{
JOptionPane.showMessageDialog(null,"gameover","游戏结束",JOptionPane.ERROR_MESSAGE);
}
voideat()
{
length++;
this.score+=100;
create_bean();
}
booleanout_bounds()
{
if(xs[0]==-10||xs[0]==600||ys[0]==-10||ys[0]==600)//出界即死
{
returntrue;
}
returnfalse;
}
voidchange_direction(intnew_direction)//控制方向
{
if(direction%2!=new_direction%2||direction==0)//2431上下左右
{
direction=new_direction;
}
}
booleaneat_self()
{
for(inti=1;i0;i--){//2431上下左右
xs[i]=xs[i-1];//后一个替代前一个4=3;
ys[i]=ys[i-1];
}
switch(direction){
case1:
xs[0]=xs[0]+10;
break;
case2:
ys[0]=ys[0]-10;
break;
case3:
xs[0]=xs[0]-10;
break;
case4:
ys[0]=ys[0]+10;
break;
default:
break;
}
}
voidshow_snake(Graphicsg)
{
for(inti=0;i
文件:ShellMain.java
importjavax.swing.Box;
importjavax.swing.JFrame;
@SuppressWarnings("serial")
publicclassShellMainextendsJFrame{
ShellWinwin=newShellWin();
ShellWin.panelpan=win.newpanel();
Boxbox,box2;
ShellMain(){
box2=Box.createHorizontalBox();
box2.add(win);
box=Box.createVerticalBox();
box.add(pan.box1);
box.add(Box.createVerticalStrut(8));
box.add(box2);
pan.add(box);
setTitle("贪吃蛇");
setSize(800,800);
setVisible(true);
setLayout(null);
add(pan);
setLocation(0,0);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicstaticvoidmain(String[]args){
newShellMain();
}
}
更多精彩游戏,请参考专题《java经典小游戏》
更多有趣的经典小游戏实现专题,分享给大家:
C++经典小游戏汇总
python经典小游戏汇总
python俄罗斯方块游戏集合
JavaScript经典游戏玩不停
javascript经典小游戏汇总
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。