手機遊戲畢業設計論文
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;
public class lzhhdm extends MIDlet implements CommandListener {
public Display display;
private Image splashLogo;
private boolean isSplash=true;
public Form a;
private Alert alert;
int length;
private MenuScreen menuscreen;
private gameScreen gamescreen;
private Command ok,back;
private byte[] byteInputData;
public lzhhdm()
{
}
protected void startApp() throws MIDletStateChangeException {
display=Display.getDisplay(this);
menuscreen=new MenuScreen(this);
if(isSplash)
{ a=null;
a=new Form("覽橋風光V1.0");
ok=new Command("ok",Command.OK,1);
a.append(new StringItem(null,"....."));
a.addCommand(ok);
a.setCommandListener(this);
display.setCurrent(a);
}
}
protected void menuscreenShow()
{
display.setCurrent(menuscreen);
}
protected void menuscreensecond() {
menuscreen=new MenuScreen(this);
MenuScreen.mainmenu[0]="重新開始";//玩完一遍或掛了後在玩一遍 選單第一項改為 重新開始
display.setCurrent(menuscreen);
}
protected void pauseApp() {}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
protected void helShow()
{ a=null;
a=new Form("覽橋風光V1.0");
back=new Command("返回",Command.BACK,1);
a.append(new StringItem(null,"操作方式:上 2 下 8 左 4 右 6 開火 5"));
a.append(new StringItem(null,"彈藥數:一次最多打三組"));
a.addCommand(ok);
a.setCommandListener(this);
display.setCurrent(a);
}
protected void renwuShow()
{
a=null;
a=new Form("覽橋風光V1.0");
back=new Command("返回",Command.BACK,1);
a.append(new StringItem(null,"遊戲名稱:覽橋風光"));
a.append(new StringItem(null,"版本號:V1.00"));
a.append(new StringItem(null,"製作者:資訊電子技術學院01計算機5班 劉澤華 學號:7"));
a.addCommand(ok);
a.setCommandListener(this);
display.setCurrent(a);
}
protected void gameShow()
{ try{
gamescreen=null;
gamescreen=new gameScreen(this);
gamescreen.start();
display.setCurrent(gamescreen);
gamescreen.conti=true;
}catch(Exception exp)
{
System.out.println("dfg");
}
}
public void commandAction(Command arg0, Displayable arg1) {
a=null;
this.menuscreenShow();
}
}
import javax.microedition.lcdui.*;
public class MenuScreen extends Canvas implements Runnable,CommandListener
{
Font lowfont=Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_MEDIUM);
Font highfont=Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_BOLD,Font.SIZE_MEDIUM);
int lowColor=0x000000FF;
int highColor=0x00FF0000;
int highBGColor=0x00CCCCCC;
int width;
boolean co;
int height;
int startHeight;
int spacing=highfont.getHeight()/2;
public static String[] mainmenu={"ÐÂÓÎÏ·","°ïÖú","¹ØÓÚ"};
int menuIndex;
Thread menuThread;
private Command ok=new Command("ok",Command.OK,1);
private lzhhdm midlet;
public MenuScreen(lzhhdm midlet)
{ this.midlet=midlet;
width=getWidth();
height=getHeight();
startHeight=(highfont.getHeight()*mainmenu.length)+((mainmenu.length-1)*spacing);
startHeight=(height-startHeight)/2;
menuIndex=0;
addCommand(ok);
setCommandListener(this);
menuThread =new Thread(this);
menuThread.start();
co=true;
}
public void run()
{
while(co)
{
repaint();
}
}
public void paint(Graphics g)
{
g.setColor(0x00FFFFFF);
g.fillRect(0,0,width,height);
for(int i=0;i<mainmenu.length;i++)
{
if(i==menuIndex)
{
g.setColor(highBGColor);
g.fillRect(0,startHeight+(i*highfont.getHeight())+spacing,width,highfont.getHeight());
g.setFont(highfont);
g.setColor(highColor); g.drawString(mainmenu[i],(width-highfont.stringWidth(mainmenu[i]))/2,startHeight+(i*highfont.getHeight())+spacing,20);
}else
{
g.setFont(lowfont);
g.setColor(lowColor);
g.drawString(mainmenu[i],(width-lowfont.stringWidth(mainmenu[i]))/2,startHeight+(i*highfont.getHeight())+spacing,20);
}
}
}
public void keyPressed(int code)
{
if(getGameAction(code)==Canvas.UP&&menuIndex-1>=0)
{
menuIndex--;
}
else if(getGameAction(code)==Canvas.DOWN&&menuIndex+1<mainmenu.length)
{
menuIndex++;
}
}
public void commandAction(Command c,Displayable d)
{
if (c==ok)
{
switch(menuIndex)
{
case 0:
co=false;
midlet.gameShow();
break;
case 1:
midlet.helShow();
break;
case 2:
midlet.renwuShow();
break;
}
}
}
}
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
public class mybullets extends Sprite
{ public int score=0;
private int[][] bullets;
private int bulletstotal;
public int width,bulletheight;
public int no=0;
public mybullets(Image img,int picwidth,int picheight,int bulletstotal,int width,int height)
{
super(img,picwidth,picheight);
this.bulletstotal=bulletstotal;
bullets=new int[bulletstotal][4];
this.width=width;
this.bulletheight=height/7;
}
public void initBullets(int i)
{
bullets[i][3]=1;
bullets[i][2]=0;
}
public void updata(int i)
{
bullets[i][1]+=bullets[i][2];
}
public void setfirstposition(int x,int y,int nof,Sprite sprite[],Image img)
{
sprite[nof].setVisible(true);
sprite[nof+1].setVisible(true);
sprite[nof+2].setVisible(true);
bullets[nof][0]=x+10;
bullets[nof][1]=y-24;
sprite[nof].setImage(img,6,6);
bullets[nof+1][1]=bullets[nof][1]+10;
bullets[nof+1 ][0]=x+10;
sprite[nof+1].setImage(img,6,6);
bullets[nof+2][1]=bullets[nof+1][1]+10;
bullets[nof+2 ][0]=x+10;
sprite[nof+2].setImage(img,6,6);
}
public void newposition(Sprite sprite[],int i,int v,Sprite jp0,Sprite jp1,Sprite jp2,Sprite boss,Image img)
{
bullets[i][2]-=5;
sprite[i].setPosition(bullets[i][0],bullets[i][1]+bullets[i][2]);
sprite[i+1].setPosition(bullets[i][0],bullets[i+1][1]+bullets[i][2]);
sprite[i+2].setPosition(bullets[i][0],bullets[i+2][1]+bullets[i][2]);
if (sprite[i].collidesWith(jp0,true))
{
sprite[i].setImage(img,32,32);
sprite[i+1].setImage(img,32,32);
sprite[i+2].setImage(img,32,32);
sprite[i].setFrame(1);
sprite[i+1].setFrame(1);
sprite[i+2].setFrame(2);
bullets[i][3]=0;
bullets[i+1][3]=0;
bullets[i+2][3]=0;
jp0.setVisible(false);
no=1;
score=score+1;
}
if (sprite[i].collidesWith(jp1,true))
{
sprite[i].setImage(img,32,32);
sprite[i+1].setImage(img,32,32);
sprite[i+2].setImage(img,32,32);
sprite[i].setFrame(1);
sprite[i+1].setFrame(1);
sprite[i+2].setFrame(2);
bullets[i][3]=0;
bullets[i+1][3]=0;
bullets[i+2][3]=0;
jp1.setVisible(false);
no=1;
score=score+1;
}
if (sprite[i].collidesWith(jp2,true))
{
sprite[i].setImage(img,32,32);
sprite[i+1].setImage(img,32,32);
sprite[i+2].setImage(img,32,32);
sprite[i].setFrame(1);
sprite[i+1].setFrame(1);
sprite[i+2].setFrame(2);
bullets[i][3]=0;
bullets[i+1][3]=0;
bullets[i+2][3]=0;
jp2.setVisible(false);
no=1;
score=score+1;
}
}
public boolean isAlive(int i)
{
if (bullets[i][3]==1) return true;
else return false;
}
public void setAlive(int i)
{
for (int z=i;z<i+3;z++)
{
bullets[i][3]=0;
}
}
public int rscore()
{
return score;
}
public void clean(int i,Sprite sprite[])
{
for (int z=i;z<i+3;z++)
{
//sprite[z].setPosition(0,-1500);
sprite[z].setVisible(false);
no=1;
}}}
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;
int sbmove=0;
int sfire=0;
int smovebz=0;
int sbpzbz=0;
int slife=0;
int sbo=0;
int drawslife=0;
int lr=0;
int drawadd=0;
int pzbz=0;
int pzbzover=0;
int playlife=-1;
int bosslife=0;
int inputno=0;
int position=0;
int j1b=0;
int jbsz=-1;
int sbsz0=-1;
int sbsz1=-1;
int sbsz2=-1;
int sbsz3=-1;
int planepo;
int planepoup;
int kkk;
int gz=0;
int gzks=0;
int jiangli=0;
int jplaneno;
int cloundno=0;
int right=0;
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;
private mybullets[] huokebullet=new mybullets[9];
privateSpritejbullet0,jbullet1,jbullet2,bossbullet0,bossbullet1,bossbullet2;
private Sprite cloud[]=new Sprite[5];
private MenuScreen ms;
privateSpritec1,sboss,cboss,j0,j1,j2,boss1; private lzhhdm midlet;
int s1=0;int s2=65;int s3=0;int row2;
int row;int planecolor=0;
int planecoco=0;public int by1;
public int y1;
public gameScreen (lzhhdm midlet)
{ super(true);this.midlet=midlet;
addCommand(new Command("暫停",Command.BACK,1));
setCommandListener(this);
lm=new LayerManager();
c1=new Sprite(img("/pic/MyPlaneFrames.png"),24,24);
cboss=newSprite(img("/pic/boss.png"),65,50);jbullet0=newSprite(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);
System.out.println("ffffffffffff");
planepoup=row2;
planepo=row2+getHeight();
j0=new Sprite(img("/pic/jplane2.png"),24,22);
j1=new Sprite(img("/pic/jplane2.png"),24,22);
j2=new Sprite(img("/pic/jplane2.png"),24,22);
kkk=getHeight()/8;
lm.append(j0);
lm.append(j1);
lm.append(j2);
cboss.setVisible(false);
aipp=aip.nextInt()%3;
if(aipp==0)
{aipp=aip.nextInt()%3;
}lm.append(cboss);
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<=4;i++){
cloud[i]=new Sprite(img("/pic/cloud1.png"),16,16);
lm.append(cloud[i]);}
}catch(Exception e)
{System.out.println("cloud");}
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)
{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[]{ 地圖};
for(int i=0;i<map1.length;i++)
{ int column=i%15;
row=(i-column)/15; tiledLayer.setCell(column,row,map1[i]);}
row2=(row+1)*16-getHeight();
y1=-row2;
return tiledLayer;}
boolean conti=true;
int rate=50;
public void run()
{ long st=0;
long et=0;
Graphics g=getGraphics();
int l=1350;
while(conti){
st=System.currentTimeMillis();
input();
if(huokebullet[0].isAlive(0)){
huokebullet[0].no--;
if(huokebullet[0].no>0){ huokebullet[0].newposition(huokebullet,0,3,j0,j1,j2,cboss,img("/pic/explosion.png")); }
if(huokebullet[0].no<=0){
huokebullet[0].setAlive(0); huokebullet[0].clean(0,huokebullet);
}} if(huokebullet[3].isAlive(3))
{huokebullet[3].no--;
if(huokebullet[3].no>0)
{ huokebullet[3].newposition(huokebullet,3,3,j0,j1,j2,cboss,img("/pic/explosion.png")); }
if(huokebullet[3].no<=0)
{huokebullet[3].setAlive(3);
huokebullet[3].clean(3,huokebullet);
}} if(huokebullet[6].isAlive(6))
{huokebullet[6].no--;
if(huokebullet[6].no>0){ huokebullet[6].newposition(huokebullet,6,3,j0,j1,j2,cboss,img("/pic/explosion.png")); }
if(huokebullet[6].no<=0){huokebullet[6].setAlive(6);
huokebullet[6].clean(6,huokebullet);} }if (huokebullet[0].collidesWith(cboss,true))
{huokebullet[0].setVisible(false); huokebullet[1].setVisible(false); huokebullet[2].setVisible(false);
cboss.setFrame(1);
if(bosslife<=55)
{bosslife=bosslife+5;}
huokebullet[0].setAlive(0); huokebullet[0].clean(0,huokebullet);} if(huokebullet[0].collidesWith(sboss,true)&&(sbpzbz==0)){ huokebullet[0].setVisible(false);
huokebullet[1].setVisible(false); huokebullet[2].setVisible(false);
sboss.setFrame(1);
if(slife<=75){slife=slife+5;}
huokebullet[0].setAlive(0); huokebullet[0].clean(0,huokebullet);if(huokebullet[3].collidesWith(cboss,true)){cboss.setFrame(1); huokebullet[3].setVisible(false);
huokebullet[4].setVisible(false); huokebullet[5].setVisible(false);
huokebullet[3].no=0;
if(bosslife<=55){
bosslife=bosslife+5;}
huokebullet[3].setAlive(3); huokebullet[3].clean(3,huokebullet);}
if(huokebullet[3].collidesWith(sboss,true)&&(sbpzbz==0)){sboss.setFrame(1);
huokebullet[3].setVisible(false);
huokebullet[4].setVisible(false);
huokebullet[5].setVisible(false);
huokebullet[3].no=1;
if(slife<=75){slife=slife+5;}
huokebullet[3].setAlive(3); huokebullet[3].clean(3,huokebullet);}
if(huokebullet[6].collidesWith(cboss,true)){ huokebullet[6].setVisible(false); huokebullet[7].setVisible(false);
huokebullet[8].setVisible(false);
cboss.setFrame(1);
if(bosslife<=55){ bosslife=bosslife+5;
}huokebullet[6].setAlive(6); huokebullet[6].clean(6,huokebullet);
}if(huokebullet[6].collidesWith(sboss,true)&&(sbpzbz==0)){sboss.setFrame(1);
huokebullet[6].setVisible(false); huokebullet[7].setVisible(false); huokebullet[8].setVisible(false);
if(slife<=75){slife=slife+5;}
huokebullet[6].setAlive(6); huokebullet[6].clean(6,huokebullet);;}if((y1>-1350)&&(pzbzover==0))
{
switch (ai){
case 0:
if(jb[0]==1){
jbz=0;
j0.setVisible(true);
j1.setVisible(true);
j2.setVisible(true);
j1.setFrame(2);
j0.setFrame(2);
j2.setFrame(2); j0.setPosition(100-aipp*30,planepoup+24); j1.setPosition(100,planepoup); j2.setPosition(100+aipp*30,planepoup-24);jb[0]=2;}
if (jb[0]==2){ j0.move(0,3);
j1.move(0,3);j2.move(0,3);
kkk=kkk-1; }
if(kkk<=0){jb[0]=3;
if(aipp>=0){
j1.setFrame(0); j0.setFrame(0);j2.setFrame(0); j0.move(-3,3);j1.move(-3,3); j2.move(-3,3);}else if(aipp<0)
{j1.setFrame(1); j0.setFrame(1); j2.setFrame(1);j0.move(3,3);j1.move(3,3);
j2.move(3,3);}
if(j2.getY()>planepo) {
j0.setVisible(false);j1.setVisible(false);
j2.setVisible(false);jbullet0.setVisible(false);jbullet1.setVisible(false); jbullet2.setVisible(false);jpb=-1;
ai=aik.nextInt()%4; aipp=aip.nextInt()%5;
if(aipp==0){aipp=aip.nextInt()%5;
}if(ai<0) ai=ai*(-1);
jb[ai]=1; kkk=getHeight()/8;}} if((j1.getX()<=c1.getX()-18)&(jbz==0))
{ jpb=0;if(j0.isVisible()){
jbullet0.setVisible(true);}
if(j1.isVisible()){
jbullet1.setVisible(true);}
if(j2.isVisible()){
jbullet2.setVisible(true);} jbullet0.setPosition(j0.getX()+12,j0.getY()+30);jbullet1.setPosition(j1.getX()+12,j1.getY()+30);jbullet2.setPosition(j2.getX()+12,j2.getY()+30);jbz=1;}break; case 1:
if(jb[1]==1){j0.setVisible(true);
j1.setVisible(true);j2.setVisible(true);
j1.setFrame(2); j0.setFrame(2);
j2.setFrame(2);j0.setPosition(100-aipp*30,planepoup+24);j1.setPosition(100,planepoup);j2.setPosition(100+aipp*30,planepoup-24);;jb[1]=2;}
if (jb[1]==2){ j0.move(0,3);
j1.move(0,3); j2.move(0,3);
kkk=kkk-1;}
if(kkk<0){jb[1]=3;}
if(jb[1]==3){ jpb=1;j1.setFrame(3);
j0.setFrame(3);j2.setFrame(3);
jb[1]=4;}
if(jb[1]==4){j0.move(0,-4);
j1.move(0,-4); j2.move(0,-4);
if(j2.getY()<planepoup) {j0.setVisible(false);
j1.setVisible(false);j2.setVisible(false);
jbullet0.setVisible(false); jbullet1.setVisible(false);jpb=-1; jbullet2.setVisible(false); ai=aik.nextInt()%4; if(ai<0) ai=ai*(-1);jb[ai]=1;
aipp=aip.nextInt()%5; if(aipp==0){ aipp=aip.nextInt()%5;}
kkk=getHeight()/8; }}break;
case 2: if(jb[2]==1){
jbz=0;j0.setVisible(true);
j1.setVisible(true);j2.setVisible(true);
j1.setFrame(2);j0.setFrame(2);j2.setFrame(2); j0.setPosition(100-aipp*30,planepoup+aipp*30);j1.setPosition(100,planepoup); j2.setPosition(100+aipp*30,planepoup+aipp*30);;
jb[2]=2;} if (jb[2]==2){
j0.move(0,3);j1.move(0,3);
j2.move(0,3);kkk=kkk-1;
}if(kkk<=0){jb[2]=3;
j1.setFrame(0);j0.setFrame(0);j2.setFrame(0);j0.move(-3,3);j1.move(-3,3);
j2.move(-3,3); if(j2.getY()>planepo) {jpb=-1;
jbullet0.setVisible(false);
jbullet1.setVisible(false);
jbullet2.setVisible(false);
j0.setVisible(false); j1.setVisible(false);
j2.setVisible(false); ai=aik.nextInt()%4;
if(ai<0) ai=ai*(-1); jb[ai]=1; aipp=aip.nextInt()%5; if(aipp==0)
{aipp=aip.nextInt()%5; }
kkk=getHeight()/8; }
} if(((j1.getX()<=c1.getX()-18)||((j2.getX()-6)>=c1.getX()))&(jbz==0))
{if(j0.isVisible()){jbullet0.setVisible(true);} if(j1.isVisible()){
jbullet1.setVisible(true);}
if(j2.isVisible()) {
jbullet2.setVisible(true);}
jpb=0; jbullet0.setPosition(j0.getX()+12,j0.getY()+30); jbullet1.setPosition(j1.getX()+12,j1.getY()+30);
jbullet2.setPosition(j2.getX()+12,j2.getY()+30);jbz=1;}
break;
case 3:
if(jb[3]==1){jbz=0; j0.setVisible(true);j1.setVisible(true);
j2.setVisible(true);j1.setFrame(2);
j0.setFrame(2);j2.setFrame(2); j0.setPosition(200-aipp*50,planepoup-aipp*10);
j1.setPosition(100,planepoup); j2.setPosition(100+aipp*50,planepoup-aipp*10); jb[3]=2; }
if (jb[3]==2){ j0.move(0,3);
j1.move(0,3);j2.move(0,3);
if(gzks==0){if(j1.getX()<c1.getX())
{j1.move(2,2);j1.setFrame(1);}
if(j1.getX()>c1.getX()){ j1.setFrame(0);
j1.move(-2,2);} if((j1.getX()<c1.getX())&&((j1.getX()+48)>c1.getX())&&(j1.getY()<c1.getY()))
{j1.setFrame(2);j1.move(0,2); if(j1b==0){ jbullet1.setPosition(j1.getX()+12,j1.getY()+30);j1b=1;}}
j0.move(0,3);jbullet1.move(0,3);
j1.move(0,3);j2.move(0,3);} if((j2.getY()>(planepo+22))&&(j0.getY()>(planepo+22))&&((j1.getY()<(planepoup-22))||(j1.getY()>(planepo+22)))){
jb[3]=1;
gz=0;gzks=0;jbullet1.setVisible(false);
jbullet2.setVisible(false); j0.setVisible(false);
j1.setVisible(false);
j2.setVisible(false);
ai=aik.nextInt()%4; if(ai<0)
ai=ai*(-1);
jb[ai]=1; aipp=aip.nextInt()%5;
if(aipp==0) {aipp=aip.nextInt()%5;}
kkk=getHeight()/8; }
if((j2.getX()<=c1.getX()-18)&(jbz==0))/
{ jpb=0; if(j0.isVisible())
{jbullet0.setVisible(true);}
if(j2.isVisible()){jbullet2.setVisible(true);
}jbullet0.setPosition(j0.getX()+12,j0.getY()+30);jbullet2.setPosition(j2.getX()+12,j2.getY()+30); jbz=1; }} break;}}if(jpb==0)
{jbullet0.move(0,5); jbullet1.move(0,5);
jbullet2.move(0,5); }
if((jbullet0.collidesWith(c1,true)||jbullet1.collidesWith(c1,true)||jbullet2.collidesWith(c1,true)||bossbullet0.collidesWith(c1,true)||bossbullet1.collidesWith(c1,true)||bossbullet2.collidesWith(c1,true))&&(pzbz==0)){
c1.setImage(img("/pic/explosion.png"),32,32); c1.setFrame(3); if((playerno>0))
{playerno=playerno-1; planert=1;
}else{pzbz=1; overcmd=1;
over=1;}} if((j0.collidesWith(c1,true)&&(pzbz==0))) {
c1.setImage(img("/pic/explosion.png"),32,32); c1.setFrame(3); if(playerno>0)
{playerno=playerno-1; planert=1;
playlife=0; }else{overcmd=1; playlife=1;
over=1;} j0.setVisible(false); pzbz=1;
}if((j1.collidesWith(c1,true)&&(pzbz==0))) {c1.setImage(img("/pic/explosion.png"),32,32); c1.setFrame(3); if(playerno>0)
{playerno=playerno-1; planert=1;
playlife=0; }else{overcmd=1;
playlife=1; over=1;} j1.setVisible(false);
pzbz=1; if((j2.collidesWith(c1,true)&&(pzbz==0)))
{c1.setImage(img("/pic/explosion.png"),32,32); c1.setFrame(3);
if(playerno>0) {
playerno=playerno-1; planert=1;
playlife=0; }else{playlife=1;
if(overcmd==0) {}overcmd=1;
} over=1;} j2.setVisible(false);
pzbz=1; }if(overcmd==1)
{addCommand(new Command("返回",Command.OK,1)); overcmd=2;
if(boss==1) {cboss.setVisible(true);
if(cboss.getY()<25) {
cboss.move(0,3);
}else lr=1;
if(lr==1)
{if(cboss.getX()<0)
{
right=0;
left=1; }
else if(cboss.getX()>getWidth()-cboss.getWidth())
{left=0; right=1; }
if(right==0) {cboss.move(3,0); }
else if(left==0) {cboss.move(-3,0);} }
if(((cboss.getX()<=c1.getX()-10)||(cboss.getX()<=c1.getX()+60))&&(jbsz==0)) {bossbullet0.setPosition(cboss.getX()+6,cboss.getY()+40); bossbullet1.setPosition(cboss.getX()+30,cboss.getY()+52); bossbullet2.setPosition(cboss.getX()+54,cboss.getY()+40); jbsz=1; }if(jbsz==1){
bossbullet0.setVisible(true);
bossbullet1.setVisible(true);
bossbullet2.setVisible(true);
bossbullet0.move(0,5);
bossbullet1.move(0,5);
bossbullet2.move(0,5); }
if(bossbullet2.getY()>getHeight()){jbsz=0;}}
if(bosslife==60){ cboss.setVisible(false);
j1.setVisible(false);j0.setVisible(false);
j2.setVisible(false);bossbullet0.setVisible(false);bossbullet1.setVisible(false);bossbullet2.setVisible(false);jbullet0.setVisible(false);jbullet1.setVisible(false);jbullet2.setVisible(false);
pzbz=1;bossover=1;boss=2;bosslife=65;
pzbzover=1; addCommand(new Command("返回",Command.OK,1));
}if(bosslife==45)
{bosscolor=1; }
if(slife==65)
{sbosscolor=1;}
if(y1<0){ render(g);
y1=y1+1;planepoup=planepoup-1;
planepo=planepo-1;c1.move(0,-1); }
if (y1>=0 ) { if(boss==0)
{jbsz=0; boss=1; planepoup=0;
planepo=getHeight();cboss.setPosition(80,-60); }renderboss(g); } if(bosscolor==0)
cboss.setFrame(0); else cboss.setFrame(1);
if(sbosscolor==0) sboss.setFrame(0);
else sboss.setFrame(1); if(cloundno==0)
{ cloud[0].setPosition(25,planepoup-(65));
cloud[1].setPosition(80,planepoup-(140);
cloud[2].setPosition(112,planepoup-(90)); cloud[3].setPosition(175,planepoup-(200)); cloud[4].setPosition(223,planepoup-(70));
cloundno=1; } cloud[0].move(0,1);
cloud[1].move(0,1); cloud[2].move(0,1);
cloud[3].move(0,1);
cloud[4].move(0,1);
if(cloud[0].getY()>planepo){
cloudposition=aicloud.nextInt()%5;
if(cloudposition<0) { cloudposition=cloudposition*(-1);
} cloudposition=cloudposition+1;
cloud[0].setPosition(cloudposition*40,planepoup); }if(cloud[1].getY()>planepo){
cloudposition=aicloud.nextInt()%5;
if(cloudposition<0) { cloudposition=cloudposition*(-1);
} cloudposition=cloudposition+1;
cloud[1].setPosition(cloudposition*30,planepoup); }if(cloud[2].getY()>planepo){
cloudposition=aicloud.nextInt()%5;
if(cloudposition<0) {coudposition=cloudposition*(-1);
}
cloudposition=cloudposition+1;
cloud[2].setPosition(cloudposition*55,planepoup); }if(cloud[3].getY()>planepo){
cloudposition=aicloud.nextInt()%5;
if(cloudposition<0) {cloudposition=cloudposition*(-1);
}cloudposition=cloudposition+1;
cloud[03].setPosition(cloudposition*15,planepoup); } if(cloud[4].getY()>planepo){
cloudposition=aicloud.nextInt()%5;
if(cloudposition<0) {cloudposition=cloudposition*(-1); }
cloudposition=cloudposition+1; cloud[4].setPosition(cloudposition*22,planepoup); }if((y1==-1000)&&(sbz==0))
{sbsz0=0; sbsz1=0; sbsz2=0; sbsz3=0;
drawslife=1; sboss.setVisible(true);
sboss.setPosition(50,planepoup-65);
sbz=1; }if(sbz==1) {sboss.move(0,3);
if(sboss.getY()>planepoup) {sbz=2;
}}
if(sbz==2) {if(((sboss.getY()-50)<c1.getY())&&(smovebz==0)) { sbmove=1;//上移}
if(((sboss.getX()+30)<c1.getX())&&(smovebz==0)) {sbmove=4;//右移}
if(((sboss.getY()+50)<c1.getY())&&(smovebz==0)) {sbmove=2; }
if(((sboss.getX()-30)>c1.getX())&&(smovebz==0)) {sbmove=3; }if(sbmove==1)//上移
{ smovebz=1; sboss.move(0,-2); }
if(sbmove==2){smovebz=1; sboss.move(0,2);
}if(sbmove==3) {sboss.move(-2,0); }
if(sbmove==4)
{smovebz=1; sboss.move(2,0); }
if(sboss.getY()<planepoup) {
sboss.setPosition(sboss.getX(),planepoup); smovebz=0; }
if(sboss.getY()>(planepo-65)){ sboss.setPosition(sboss.getX(),planepo-65);
smovebz=0; }if(sboss.getX()<0) {sboss.setPosition(0,sboss.getY());smovebz=0; }if(sboss.getX()>(getWidth()-65)) { sboss.setPosition(getWidth()-65,sboss.getY()); smovebz=0; } if(((sboss.getX()+40)<c1.getX())&&(sboss.getY()<c1.getY())&&((sboss.getY()+65)>c1.getY())&&(sbsz0==0))
{bossbullet0.setVisible(true);
bossbullet0.setPosition(sboss.getX()+45,sbos.
getY()+35); sbsz0=1;
}
if(sbsz0==1)
{bossbullet0.move(3,0); if(bossbullet0.getX()>getWidth()) {
sbsz0=0; } }if((sboss.getX()>c1.getX())&&((sboss.getY()+65)>c1.getY())&&(sbsz1==0))
{bossbullet1.setPosition(sboss.getX()+10,sboss.getY()+35); sbsz1=1; }
if(sbsz1==1) { bossbullet1.move(-3,0);
if(bossbullet1.getX()<0) {
bossbullet1.setVisible(false); sbsz1=0;}} if((sboss.getX()<c1.getX())&&((sboss.getX()+50)>(c1.getX()))&&(sboss.getY()>c1.getY())&&(sbsz2==0)) {
bossbullet2.setVisible(true);
bossbullet2.setPosition(sboss.getX()+25,sboss.getY());sbsz2=1; }if(sbsz2==1)
{bossbullet2.move(0,-4); if(bossbullet2.getY()<planepoup)
{bossbullet2.setVisible(false); sbsz2=0;
} }if((sboss.getX()<c1.getX())&&((sboss.getX()+50)>(c1.getX()))&&(sboss.getY()<c1.getY())&&(sbsz3==0))
{bossbullet0.setVisible(true); bossbullet1.setVisible(true); bossbullet2.setVisible(true);
bossbullet2.setPosition(sboss.getX()+10,sboss.getY()+25); bossbullet1.setPosition(sboss.getX()+30,sboss.getY()+50);
bossbullet0.setPosition(sboss.getX()+55,sboss.getY()+25); sbsz3=1; }
if(sbsz3==1) {bossbullet0.move(0,4);
bossbullet1.move(0,4); bossbullet2.move(0,4);
if(bossbullet0.getY()>planepo)
{
bossbullet0.setVisible(false);
bossbullet1.setVisible(false);
bossbullet2.setVisible(false); sbsz3=0;
}}} if((slife==80)) {
sboss.setImage(img("/pic/explosion.png"),32,32);sboss.setFrame(3);bossbullet0.setVisible(false); bossbullet1.setVisible(false);
bossbullet2.setVisible(false); jiangli=11;
slife=85; drawslife=0;
playerno=playerno+1; sbz=-1;//sbos sbpzbz=1; }
if((sboss.getY()==getHeight())){
sbz=-1; sbpzbz=1; drawadd=21;
}if(drawadd==21) {sboss.move(0,-3);
if(sboss.getY()<-65) {
sboss.setVisible(false); drawadd=31;
}}if(planert==1) {inputno=1;
pzbz=1; s2=65; c1.setImage(img("/pic/MyPlaneFrames.png"),24,24); c1.setFrame(0); c1.setVisible(true);
c1.setPosition(getWidth()/2,planepo+48);
planert=2;
}if(planert==2)
{c1.move(0,-2); if(c1.getY()<(planepo-24))
{System.out.println(c1.getY());
System.out.println(planepo-24);inputno=0;
s1=1;
planert=3; }if(c1.getY()>(planepo+24))
{ c1.move(0,-2); }}
et=System.currentTimeMillis();
if((et-st)<rate){try{ Thread.sleep(rate-(et-st));
}catch(Exception exp){} }
}}public void render(Graphics g)
{ g.setColor(255,255,255);
g.fillRect(0,0,getWidth(),getHeight());
lm.setViewWindow(0,0,getWidth(),getHeight()+10000); lm.paint(g,0,y1); if(over==1)
{ g.drawString("寒在杭州覽橋上空因座機被擊中,壯烈殉國,年",c1.getWidth()-24,60,0); g.drawString("1937年 8月14日,空軍第4大隊少尉飛行員劉思",c1.getWidth()-24,40,0); g.drawString("僅21歲",c1.getWidth()-24,80,0); inputno=1;
}g.drawString("37年8月14日 杭州覽橋 戰果:"+String.valueOf(huokebullet[0].rscore()+huokebullet[3].rscore()+huokebullet[6].rscore()),c1.getWidth()-24,c1.getHeight()-20,0);//
if(drawslife==1) {g.setColor(255,0,0);
g.fillRect(2,22,80,5);g.setColor(255,255,255);
g.fillRect(2,22,slife,5); }
if(playerno==3) {g.drawImage(img("/pic/playerbiaozhi.png"),170,4,0); g.drawImage(img("/pic/playerbiaozhi.png"),195,4,0); g.drawImage(img("/pic/playerbiaozhi.png"),220,4,0); }if(playerno==2)
{g.drawImage(img("/pic/playerbiaozhi.png"),195,4,0);
g.drawImage(img("/pic/playerbiaozhi.png"),220,4,0); }if(playerno==1) {
g.drawImage(img("/pic/playerbiaozhi.png"),220,4,0); }if(playerno==4)
{g.drawImage(img("/pic/playerbiaozhi.png"),145,4,0);
g.drawImage(img("/pic/playerbiaozhi.png"),170,4,0);
g.drawImage(img("/pic/playerbiaozhi.png"),195,4,0);
g.drawImage(img("/pic/playerbiaozhi.png"),220,4,0);g.setColor(255,0,0); }
if(jiangli==11){g.setColor(255,0,0);
g.drawString("援軍到達",100,150,0);
if(sboss.getY()>planepo) {jiangli=20;
}} if(s1==1) {g.setColor(255,255,255);
g.fillRect(170,22,65,5); g.setColor(255,0,0);
g.fillRect(170,22,s2,5); g.drawString("無敵時間",124,18,0); drawadd=1; s2=s2-1;
if(s2==0) {pzbz=0; s1=2; }}
flushGraphics();}public void renderboss(Graphics g) {lm.setViewWindow(0,0,getWidth(),getHeight()); lm.paint(g,0,0); if(over==1)
{//c1.getHeight(),0); g.drawString("1937年 8月14日,空軍第4大隊少尉飛行員劉思",c1.getWidth()-24,40,0);
g.drawString("僅21歲",c1.getWidth()-24,80,0); inputno=1;
} g.setColor(255,0,0); g.fillRect(2,2,60,5);//
g.setColor(255,255,255); g.fillRect(2,2,bosslife,5);//
if((bossover==1)&&(c1.isVisible()))
{g.drawString("此處加覽橋空戰真實歷史戰果",c1.getWidth()-24,40,0); g.drawString("此處加覽橋空戰真實歷史戰果",c1.getWidth()-24,60,0); g.drawString("僅21歲",c1.getWidth()-24,80,0); }
if(playerno==4) {g.drawImage(img("/pic/playerbiaozhi.png"),145,4,0); g.drawImage(img("/pic/playerbiaozhi.png"),170,4,0); g.drawImage(img("/pic/playerbiaozhi.png"),195,4,0); g.drawImage(img("/pic/playerbiaozhi.png"),220,4,0);} if(playerno==3) {
g.drawImage(img("/pic/playerbiaozhi.png"),170,4,0);
g.drawImage(img("/pic/playerbiaozhi.png"),195,4,0); g.drawImage(img("/pic/playerbiaozhi.png"),220,4,0);}if(playerno==2){ g.drawImage(img("/pic/playerbiaozhi.png"),195,4,0);
g.drawImage(img("/pic/playerbiaozhi.png"),220,4,0);
}if(playerno==1){ g.drawImage(img("/pic/playerbiaozhi.png"),220,4,0); }
if(s1==1) { g.setColor(255,255,255);
g.fillRect(170,22,65,5);g.setColor(255,0,0);
g.fillRect(170,22,s2,5);g.drawString("無敵",124,18,0);s2=s2-1;if(s2==0)
{pzbz=0;s1=2;}}
flushGraphics();}
public void input(){ if(inputno==0)
{int keystate=getKeyStates();
if((keystate&UP_PRESSED)!=0){
moveUp();}
if((keystate&DOWN_PRESSED)!=0){
moveDown();}if((keystate&LEFT_PRESSED)!=0){ moveLeft();}
if((keystate&LEFT_PRESSED)==0){
c1.setFrame(0);}if((keystate&RIGHT_PRESSED)!=0){moveRight();}
if((keystate&FIRE_PRESSED)!=0){
for(int i=0;i<=6;i=i+3){
if(huokebullet[i].no==1){
for( int z=i;z<i+3;z++){
huokebullet[z].initBullets(z); huokebullet[z].no=huokebullet[z].bulletheight
}huokebullet[i].setfirstposition(c1.getX(),c1.getY(),i,huokebullet,img("/pic/bullet.png"));//
break;}}}}}private void moveDown() {
c1.move(0,4);
if((c1.getY()+c1.getHeight())>planepo)
{
c1.setPosition(c1.getX(),planepo-c1.getHeight());}}private void moveUp() {c1.move(0,-4);
if(c1.getY()<planepoup){ c1.setPosition(c1.getX(),planepoup);}}
private void moveRight() {
c1.setFrame(2);
c1.move(3,0);
if(c1.getX()>(getWidth()-c1.getWidth()))
{ c1.setPosition((getWidth()-c1.getWidth())c1.getY());
} }
private void moveLeft() {
c1.move(-3,0);
c1.setFrame(1);
if(c1.getX()<=0)
{
c1.setPosition(0,c1.getY());
}
}
public void start()
{
Thread t=new Thread(this);
t.start();
}
public void commandAction(Command c,Displayable d)
{
if(c.getLabel()=="暫停")
{ conti=false;
removeCommand(c);
addCommand(new Command("繼續",Command.OK,1));
}
if(c.getLabel()=="繼續")
{ conti=true;
start();//
removeCommand(c);
addCommand(new Command("暫停",Command.OK,2));
}
if(c.getLabel()=="返回")
{ conti=false;
midlet.menuscreensecond();
}
}
}