求"贪吃蛇"小游戏JAVA源代码一份

核心提示贪吃蛇 import java.awt.*; import java.awt.event.*; public class GreedSnake //主类 { public static void m

贪吃蛇

import java.awt.*;

import java.awt.event.*;

public class GreedSnake //主类

{

public static void main(String[] args) {

// TODO Auto-generated method stub

new MyWindow();

}

}

class MyPanel extends Panel implements KeyListener,Runnable//自定义面板类,继承了键盘和线程接口

{

Button snake[]; //定义蛇按钮

int shu=0; //蛇的节数

int food[]; //食物数组

boolean result=true; //判定结果是输 还是赢

Thread thread; //定义线程

static int weix,weiy; //食物位置

boolean t=true; //判定游戏是否结束

int fangxiang=0; //蛇移动方向

int x=0,y=0; //蛇头位置

MyPanel()

{

setLayout(null);

snake=new Button[20];

food=new int [20];

thread=new Thread(this);

for(int j=0;j<20;j++)

{

food[j]=(int)(Math.random()*99);//定义20个随机食物

}

weix=(int)(food[0]*0.1)*60; //十位*60为横坐标

weiy=(int)(food[0]%10)*40; //个位*40为纵坐标

for(int i=0;i<20;i++)

{

snake[i]=new Button();

}

add(snake[0]);

snake[0].setBackground(Color.black);

snake[0].addKeyListener(this); //为蛇头添加键盘监视器

snake[0].setBounds(0,0,10,10);

setBackground(Color.cyan);

}

public void run() //接收线程

{

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(Exception e){}

}

else if(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(Exception e){}

}

else if(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(Exception e){}

}

else if(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(Exception e){}

}

int num1=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<0||x>=this.getWidth()||y<0||y>=this.getHeight())//判断是否撞墙

{

t=false;

result=false;

repaint();

}

int num=shu;

while(num>0) //设置蛇节位置

{

snake[num].setBounds(snake[num-1].getBounds());

num--;

}

if(shu==15) //如果蛇节数等于15则胜利

{

t=false;

result=true;

repaint();

}

}

}

public void keyPressed(KeyEvent e) //按下键盘方向键

{

if(e.getKeyCode()==KeyEvent.VK_RIGHT)//右键

{

if(fangxiang!=1)//如果先前方向不为左

fangxiang=0;

}

else if(e.getKeyCode()==KeyEvent.VK_LEFT)

{ if(fangxiang!=0)

fangxiang=1;

}

else if(e.getKeyCode()==KeyEvent.VK_UP)

{ if(fangxiang!=3)

fangxiang=2;

}

else if(e.getKeyCode()==KeyEvent.VK_DOWN)

{ if(fangxiang!=2)

fangxiang=3;

}

}

public void keyTyped(KeyEvent e)

{

}

public void keyReleased(KeyEvent e)

{

}

public void paint(Graphics g) //在面板上绘图

{

int x1=this.getWidth()-1;

int 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("GAME OVER!", 250, 200);//输出游戏失败

else if(t==false&&result==true)

g.drawString("YOU WIN!", 250, 200);//输出游戏成功

}

}

class MyWindow extends frame implements ActionListener//自定义窗口类

{

MyPanel my;

Button btn;

Panel panel;

MyWindow()

{

super("GreedSnake");

my=new MyPanel();

btn=new Button("begin");

panel=new Panel();

btn.addActionListener(this);

panel.add(new Label("begin后请按Tab键选定蛇"));

panel.add(btn);

panel.add(new Label("按上下左右键控制蛇行动"));

add(panel,BorderLayout.NORTH);

add(my,BorderLayout.CENTER);

setBounds(100,100,610,500);

setVisible(true);

validate();

addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

}

public void actionPerformed(ActionEvent e)//按下begin按钮

{

if(e.getSource()==btn)

{

try

{

my.thread.start(); //开始线程

my.validate();

}

catch(Exception ee){}

}

}

}

求截取该flash小游戏的源代码的方法,万分感激!!!

android教程百度网盘免费资源在线学习?

链接:?https://pan.baidu.com/s/1vEeYVMBFhxsmmlxkEoHW1w

?提取码:?vqbq?

android教程?

千锋教育Mars老师Android游戏开发教程-数独-源码下载(1)?

千锋教育Mars老师Android游戏开发教程-数独-源码下载?

千锋Android游戏开发视频教程-游戏数独-Mars力作(1)?

千锋Android游戏开发视频教程-游戏数独-Mars力作?

千锋Android应用开发培训视频教程-老罗在线课堂?

千锋Android应用开发培训视频教程-老罗典藏版?

千锋Android培训-Java视频教程-Mars典藏版?

Android游戏开发基础视频教程-cocos2dMars版?

千锋3G学院_Android游戏开发教程_数独_08.mp4?

千锋3G学院_Android游戏开发教程_数独_07.mp4?

千锋3G学院_Android游戏开发教程_数独_06.mp4?

千锋3G学院_Android游戏开发教程_数独_05.mp4?

千锋3G学院_Android游戏开发教程_数独_04.mp4?

千锋3G学院_Android游戏开发教程_数独_03.mp4

那是因为你flash

播放器没安装,或者

版本低了,打开

http://games.ruopo.com

移动到最下面,有个

flash

播放器下载,下载了就行了。

下载方法:

打开游戏后,在游戏框外面有个“下载游戏”点它下载就行了~

要论坛本身自带

flash

模块,只要有了

flash

模块,下一步就是找到你喜欢的那个小游戏

flash

SWF

格式的

网址,

例如

打开

http://games.ruopo.com

找到你喜欢的小游戏,点

游戏页面

后在游戏框

外面

有个

分享此游戏,

点它,把

swf

格式的网址复制起来,(一般这个网站第2个就是

swf

地址),跟着

打开你要上传的那个论坛

,新建

模块,把刚刚复制的那个SWF网址

复制进去就行了。

打开

你想要的

小游戏页面

http://games.ruopo.com

,选择你喜欢的小游戏,跟着在游戏框外面有个

分享此游戏,点它,把带

SWF

格式的

地址

复制下来,

然后在打开

QQ空间,新建一个

flash

模块,把刚刚那个地址复制进去。

例如

打开http://games.ruopo.com

你想要下载的小游戏页面,在游戏框外面有个“下载游戏”点它下载就行了~

我教你如何

知道

任何小游戏

SWF

格式地址。

.

先说说

这个网站

http://games.ruopo.com

这个网站

所有的

flash

游戏都可以下载,打开游戏页面

,跟着在游戏框

外面

有个分享此游戏

,点它,第2个

就是

SWF

格式的地址了~

.

要是其它网站,你就右键

那个

游戏页面,

查看源文件,

跟着

Ctrl+

F

,输入

swf

,你点

下一步。

看到

SWF

那些代码没?

看着那个符合

游戏的,就把那个复制起来。

找到你想要的小游戏的flash

地址后,打开空间,跟着新建一个

flash

模块,把那个带

SWF

格式的小游戏地址复制进去就行了~

.

例如

http://games.ruopo.com

,我选择了自己喜欢的一款游戏,在游戏页面有个“分享此游戏”

点它,把

SWF

格式的小游戏网址复制起来,转到空间flash模块中提交就行了。

你点击页面-工具

Internet

选项-游览历史记录(这个范围内点那个

设置,中间那有个

当前位置,看到没,那个

C:***

的就是了,不过很多的,你要找的时候,尽量用知道的途径找,例如,我要找金庸小游戏缓存文件,那我就会有

Ctrl+F,跟着输入金庸小游戏,这样就能更快的找到自己想要的那个缓存文件了)

.

希望我知道的能帮到你

 
友情链接
鄂ICP备19019357号-22