📄 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 + -