?? gamescreen.java
字號:
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);
//jbullet1.setPosition(j1.getX()+12,j1.getY()+30);
jbullet2.setPosition(j2.getX()+12,j2.getY()+30);
jbz=1;
}
}
break;
}//end while
}//end if
if(jpb==0)
{//System.out.println("dddddddddd");
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;
}//只有掛了3次后在大掛
}
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())//先頭竟然寫成了getHeight(),浪費時間
{
left=0;
right=1;
}
if(right==0)
{
cboss.move(3,0);
}
else if(left==0)
{
cboss.move(-3,0);
}
}
//判斷BOSS開火
if(((cboss.getX()<=c1.getX()-10)||(cboss.getX()<=c1.getX()+60))&&(jbsz==0))
{ //jpb=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;//BOSS變紅,表示快掛了
}
if(slife==65)
{
sbosscolor=1;//SBOSS變紅,表示快掛了
}
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;//////////////////////////////////////lollllllllllllllllllllllllll敵人不能開火啦,應該=0;
boss=1;
planepoup=0;//判斷上出界標志值
planepo=getHeight();//判斷下出界標志值
cboss.setPosition(80,-60);
}
renderboss(g);
}//判斷地圖是否到頭,畫關頭
if(bosscolor==0)//判斷BOSS顏色
cboss.setFrame(0);//擊中時變的紅色,現在變成原色,在線程結尾處變,可以達到變色的效果
else cboss.setFrame(1);//快掛時一直紅色
if(sbosscolor==0)//原理同上
sboss.setFrame(0);
else sboss.setFrame(1);
//白云,原理,先設定5個的其始位置,然消失一個出現一個
if(cloundno==0)
{ //加1是為了防止出現0,所以隨機數應該是1,2,3,4,5
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)
{
cloudposition=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);
}
//白云END
//小BOSS出現及其AI
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)//如果敵人飛機處于屏幕外面,直飛入屏幕
{//System.out.println("dddddddddddddddddddddddddd");
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.getY()>(planepo-65))||(sboss.getX()<0)||(sboss.getX()>getWidth()-65))
{
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;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -