//创建日期 2005-4-25
//游戏窗口
//在这个类里检测碰撞。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
//。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
//。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.util.*;
public class gameScreen extends GameCanvas implements Runnable,CommandListener
{
private Form al;
public LayerManager lm,lm1;
TiledLayer b1;
int height=getHeight();
int bosscolor=0;
int sbosscolor=0;
int sbz=0;//小BOSS AI相关标志位
int sbmove=0;//小BOSS移动标志位置0不动1上2下3左4右
int sfire=0;//SBOOS开火
int smovebz=0;//SBOSS移动标志
int sbpzbz=0;//SBOOS与玩家子弹碰撞标志
int slife=0;//sboss生命
int sbo=0;//sboss和飞机碰撞后玩家飞机自动出现的标志位
int drawslife=0;//画SBOSS生命标志位
int lr=0;
int drawadd=0;//增加一个飞机画个标志
int pzbz=0;//碰状标记,解决中途被挂掉后的碰撞BUG
int pzbzover=0;//解决过关后的敌机器 仍然出现问题
int playlife=-1;//玩家延续生命标志位
int bosslife=0;//bosslife
int inputno=0;//键盘输入标志位
int position=0;
int j1b=0;//CASE3语句里J1具有跟踪能力的子弹
int jbsz=-1;//boss子弹标志
int sbsz0=-1;//sboss左子弹标志
int sbsz1=-1;//sboss右子弹
int sbsz2=-1;//SBOSS上子
int sbsz3=-1;//SBOSS下子弹
int planepo;//飞机下方参照坐标
int planepoup;//飞机上方参照坐标
int kkk;
int gz=0;//上跟踪标志位置
int gzks=0;//跟踪开始标志位
int jiangli=0;//奖励标志位
int jplaneno;
int cloundno=0;
int right=0;//BOSS移动标志位,初始化向右移动
int left=1;
int boss=0;
int over=0;
int ai=0;
int planert=-1;//表示是否三次机会都没了
int supermen=0;//玩家挂后短暂无敌
int overcmd=0;
int bossover=0;
int jpb=-12;//敌人子弹是否运行标志位
int aipp=0;
int jbz=0;
int cloudposition;
Random aik=new Random();
Random aip=new Random();
Random aicloud=new Random();
int jb[]=new int[5];//敌人飞机,白云出现标志
int playerno=3;//玩家剩余飞机标志,3,2,1三次,0就是挂了
private mybullets[] huokebullet=new mybullets[9];
private Sprite jbullet0,jbullet1,jbullet2,bossbullet0,bossbullet1,bossbullet2;
private Sprite cloud[]=new Sprite[5];//白云彩
private MenuScreen ms;
private Sprite c1,sboss,cboss,j0,j1,j2,boss1; //2D时为玩家飞机
private lzhhdm midlet;
int s1=0;//无敌时间1
int s2=65;//无敌时间2
int s3=0;//无敌时间3
int row2;
int row;
int planecolor=0;//自己的飞机无敌的时候边红
int planecoco=0;//变红控制
public int by1;
public int y1;
public gameScreen (lzhhdm midlet)
{
super(true);
System.gc();
this.midlet=midlet;
addCommand(new Command("暂停",Command.BACK,1));
setCommandListener(this);
lm=new LayerManager();
c1=new Sprite(img("/pic/MyPlaneFrames.png"),24,24);//,getWidth(),getHeight()+1000);
cboss=new Sprite(img("/pic/boss.png"),65,50);//长 *宽
jbullet0=new Sprite(img("/pic/bullet.png"),6,6);
jbullet1=new Sprite(img("/pic/bullet.png"),6,6);
jbullet2=new Sprite(img("/pic/bullet.png"),6,6);
bossbullet0=new Sprite(img("/pic/bullet.png"),6,6);
bossbullet1=new Sprite(img("/pic/bullet.png"),6,6);
bossbullet2=new Sprite(img("/pic/bullet.png"),6,6);
sboss=new Sprite(img("/pic/smallboss.png"),65,50);
b1=createBackGround();//创建背景
c1.setPosition(getWidth()/2,row2+getHeight()-25);//精灵的起始位置row2+getHeight()-25=1655
//精灵是 精灵的坐标,而下面的Y1是画屏幕的位置
//System.out.println("ffffffffffff");
planepoup=row2;//屏幕上方边界
planepo=row2+getHeight();//屏幕下方边界
j0=new Sprite(img("/pic/jplane2.png"),24,22);//宽24,高22
j1=new Sprite(img("/pic/jplane2.png"),24,22);
j2=new Sprite(img("/pic/jplane2.png"),24,22);
kkk=getHeight()/8;
cboss.setVisible(false);
//aipp=3;
ai=aik.nextInt()%4;
if (ai<0)
ai=-ai;
aipp=aip.nextInt()%3;
if(aipp==0)//动态确定下一组敌机位置的参数
{
aipp=aip.nextInt()%3;
}
try
{
for(int i=0;i<=4;i++)
{
cloud[i]=new Sprite(img("/pic/cloud1.png"),16,16);
lm.append(cloud[i]);
}
}catch(Exception e)
{
System.out.println("cloud");
}
lm.append(cboss);
lm.append(j0);
lm.append(j1);
lm.append(j2);
lm.append(bossbullet0);
lm.append(bossbullet1);
lm.append(bossbullet2);
lm.append(jbullet0);
lm.append(jbullet1);
lm.append(jbullet2);
lm.append(sboss);
jb[0]=1;
jb[1]=1;
jb[2]=1;
jb[3]=1;
try
{
for(int i=0;i<9;i++)
{
huokebullet[i]=playerbullet("/pic/bullet.png");
}
}catch(Exception e){}
try
{
for(int i=0;i<=8;i=i+3)
{
huokebullet[i].no=1;//ok
huokebullet[i].score=0;
}
}catch(Exception e){System.out.println("ffffffffffffff");}
for(int i=0;i<9;i++)
{
lm.append(huokebullet[i]);
}
lm.append(c1);
lm.append(b1);
}
private Image img (String pic)
{
Image img=null;
try
{
img=Image.createImage(pic);
}catch(Exception exp)
{
System.out.println(exp);
}
return img;
}
private mybullets playerbullet(String pic)//,int px,int py,int total ,int width,int height)
{
Image img=null;
try
{
img=Image.createImage(pic);
}catch(Exception exp)
{
System.out.println(exp);
}
return new mybullets(img,6,6,21,getWidth(),getHeight());//
}
public TiledLayer createBackGround()
{
Image img=null;
try
{
img=Image.createImage("/pic/beijing.png");
}catch(Exception exp)
{
System.out.println("layer create image");
}
TiledLayer tiledLayer=new TiledLayer(50,200,img,16,16);
int[] map1=
{ 3,1,1,3,3,3,1,3,3,3,3,3,3,2,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
1,3,1,1,1,1,1,1,1,1,1,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,2,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
3,3,3,3,3,3,3,3,3,3,3,3