java飞机游戏源代码 经典java飞机游戏

谁有java游戏源码,给我发过来‘?注意:源代码仅供个人作学习研究时的参考,不得在程序制作中直接抄录 。
源代码一共两个文件:Mine.java,MGame.java , 另外还有一些图片 。
在JBuilder下建立一个新的工程,将两个源文件复制到工程目录下的src\mine目录中,将所有图片复制到src\images目录中就可以了 。
要点分析
数据结构
首先要说明一下用来存放地雷信息的数组grid 。
grid是一个二维数组 , 第一位对应表格的行 , 第二位对应表格的列,比如grid[y][x]表示第y行第x列 。每个字节的含义分三段:0-9表示已经挖开;10-19表示仍然埋藏;20-29表示做了标记 。每段中:0-8表示周围的地雷数量;9表示是地雷 。
newGame()函数
这是用于开始一个新游戏的 。
由于每次地雷的埋放地是随机的,应次开始新游戏之前先要生成新的地雷信息 。
第一步是初始化grid,将所有内容都置成10,因为一开始所有格子都是埋藏的 。
for(i=0;iHeight; i)
{
for(j=0; jWidth; j)
grid[j] = 10;
}
第二步是随机产生地雷 。当然了,已经产生过地雷的地方要避开 。
for(i=0; iMINECOUNT; i)
{
while(true)
{
x = Math.abs(rand.nextInt()) % Width;
y = Math.abs(rand.nextInt()) % Height;
if (grid[y][x] != 19)
{
grid[y][x] = 19;
break;
}
}
}
最后就是无雷处计算周围的雷数了 。怎么计算?一个一个加就是了 。
挖雷与做标记
在看一下按键响应函数keyPressed(int kcode),按1键是挖开动作 。
前半部分表示如果当前焦点在一个埋藏格(值介于10到19之间),那么将其值减10,表示现在挖开 。当然如果地下不是雷而且周围没有雷(值等于0)那么需要自动展开,这里调用了Expand(),(selx,sely)是当前焦点的表格坐标 。
后半部分表示如果当前焦点在一个已经挖开的格子上(值小于10),那么就调用SafeExp()来自动挖开周围未挖的格子 。
按3键是做标记动作 。如果当前格是埋藏格,就做上标记(值加10);如果当前格已经做了标记,那么就去掉标记(值减10) 。
自动展开
Expand()是一个嵌套函数,他的作用是将周围不含地雷的格子周围全部挖开,如果挖开的部分中也有周围不含地雷的格子,那么对那些格子也重复前面的操作 , 直到把相关的格子都挖开 。挖的顺序是左上、上、右上、左、右、左下、下、右下 , 如果遇到一个周围不含地雷的格子(值为0)那么马上嵌套调用Expand()对那个格子进行处理 。
SafeExp()是一个自动挖开周围未挖格子的函数 。当然要实现这个功能是有条件的 , 就是周围做了标记的格子数量必须等于当前格所标的数字 , 也就是说玩家把周围所有的地雷都标记了(不管是否标错) 。函数中第一个部分就是做以上条件的判断 。
第二部分是把周围埋藏的格子挖开 。但是由于玩家的错误可能标记了没有地雷的格子,而把有地雷的格子漏标了,所以先要检查一下没做标而有地雷的格子和做错标记的格子 。如果没有这些错误,那么可以安全的翻开了,同时也要检查是否挖到周围不含雷的格子,有的话就要调用Expand()了 。
SafeExp()的返回值表示是否引爆了地雷,就是标记错误 , true表示是,false表示否 。这主要用于判断这次游戏是否要结束 。
类介绍
图像缓存 ExtendedImage
ExtendedImage是Siemens自己扩展的一个专用类,只在Siemens的Java中存在 。
这个类主要是用做图像的缓存 。大家不知道还有没有印象,以前在PC上编程的时候由于显示的速度比较慢,往往会开一片显示缓存,先把要现实的内容画到这片缓存中 , 全部画好后再一次性显示出来,ExtendedImage类就起到了这个作用 。其实Java本身的Image类也可以实现类似的功能,但是显示速度好象不如人意 , 而且ExtendedImage更好用,所以我基本上都采用这个类 。当然这对通用性是不利的 。
ExtendImage的主要函数有:
void clear(byte color);
用给定的颜色填充整个图形区域 。
void blitToScreen(int x, int y);
将缓存内容贴到显示屏上,(x,y)是屏幕左上角坐标 。
Image getImage();
返回一个标准的Image类 。可以通过ExtendImage.getImage().getGraphics()得到与其相关的Graphics对象 , 用来往ExtendImage上面画图 。
java飞机大战求实现让敌机打子弹的方法首先创建四个类java飞机游戏源代码 , 敌机和英雄机子弹类java飞机游戏源代码,敌机类,英雄机类,类中定义各自的横竖x y坐标属性 , 值得注意的是,在写构造的时候,子弹的构造需要传入参数,因为子弹英雄机和敌机发出来的嘛 。再定义两种子弹移动方法 。移动方法很好写,子弹垂直方向发,x——就行了 。再在main中调用就行了
java飞机大战怎么修改?估计这个代码不全,按照提示应该可以这样解决:
在Hoofan的类中加上以下代码:
private static final long serialVersionUID = 1L;
@Override
public void mouseDragged(MouseEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent e)
{
// TODO Auto-generated method stub
}
java游戏源代码及打好包的程序java飞机游戏源代码我发一个飞机给java飞机游戏源代码你
用java编一个打飞机游戏的源程序//将每一行按空格分割
string[] chars = line.Split(' ');
//根据第一个字符来判断数据的类型
switch(chars[0])
{
case "v":
//处理顶点
this.vertexArrayList.Add(new Vector3(
ConvertToFloat(chars[1]),
ConvertToFloat(chars[2]),
ConvertToFloat(chars[3]))
);
break;
case "vn":
//处理法线
this.normalArrayList.Add(new Vector3(
ConvertToFloat(chars[1]),
ConvertToFloat(chars[2]),
ConvertToFloat(chars[3]))
);
break;
case "vt":
//处理UV
this.uvArrayList.Add(new Vector3(
ConvertToFloat(chars[1]),
ConvertToFloat(chars[2]))
);
break;
case "f":
//处理面
GetTriangleList(chars);
break;
}
}
【java飞机游戏源代码 经典java飞机游戏】java飞机游戏源代码的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于经典java飞机游戏、java飞机游戏源代码的信息别忘了在本站进行查找喔 。

    推荐阅读