📄 mygamecanvas.java
字号:
enemy.initObject(screenwidth*3/4-7,0,0,2,0,-1);
break;
case 3:
enemy.initObject(screenwidth/4-7,0,0,3,1,-1);
enemy.initObject(screenwidth*3/4-7,0,0,3,1,-1);
break;
case 4:
enemy.initObject(screenwidth/2-7,0,0,2,1,10);
break;
case 5:
enemy.initObject(0,0,2,3,1,10);
break;
case 6:
enemy.initObject(screenwidth-15,0,-2,3,1,10);
break;
case 7:
enemy.initObject(0,0,2,3,1,10);
enemy.initObject(screenwidth-15,0,-2,3,1,10);
break;
case 8:
enemy.initObject(screenwidth/4-7,0,0,3,1,10);
enemy.initObject(screenwidth*3/4-7,0,0,3,1,10);
break;
case 9:
enemy.initObject(screenwidth/2-7,0,0,2,1,10);
enemy.initObject(screenwidth/2-7,-25,0,2,1,10);
enemy.initObject(screenwidth/2-7,-50,0,2,1,10);
break;
case 10:
enemy.initObject(screenwidth/2-7,0,0,3,1,10);
enemy.initObject(screenwidth/2-7,-25,0,3,1,10);
enemy.initObject(screenwidth/2-7,-50,0,3,1,10);
break;
case 11:
enemy.initObject(0,0,2,3,0,-1);
enemy.initObject(screenwidth-15,0,-2,3,0,-1);
break;
case 12:
enemy.initObject(screenwidth/4-7,0,0,3,1,10);
enemy.initObject(screenwidth/4-7,-25,0,3,1,10);
enemy.initObject(screenwidth/4-7,-50,0,3,1,10);
enemy.initObject(screenwidth*3/4-7,0,0,3,1,10);
enemy.initObject(screenwidth*3/4-7,-25,0,3,1,10);
enemy.initObject(screenwidth*3/4-7,-50,0,3,1,10);
break;
case -1:
monster.initObject(1);
break;
}
}
}
else if (currentgate==2)//第二轮
{
step++;
if ((step%35==0) && (step/35<second.length))
{
switch (second[step/35])
{
case 0:
break;//什么敌人都没有
case 1:
enemy.initObject(screenwidth/2-13,-85,0,2,2,-1);
break;
case 2:
enemy.initObject(screenwidth/4-13,-85,0,2,2,-1);
enemy.initObject(screenwidth*3/4-13,-85,0,2,2,-1);
break;
case 3:
enemy.initObject(screenwidth/4-12,-30,0,2,3,20);
enemy.initObject(screenwidth*3/4-12,-30,0,2,3,20);
break;
case 4:
enemy.initObject(0,0,2,3,3,20);
enemy.initObject(screenwidth-12,0,-2,2,3,20);
break;
case 5:
enemy.initObject(screenwidth/2-12,0,0,2,3,20);
enemy.initObject(screenwidth/2-12,-40,0,2,3,20);
enemy.initObject(screenwidth/2-12,-80,0,2,3,20);
break;
case 6:
enemy.initObject(0,0,2,3,3,30);
enemy.initObject(0,-40,2,3,3,30);
enemy.initObject(screenwidth-12,0,-2,2,3,30);
enemy.initObject(screenwidth-12,-40,-2,2,3,30);
break;
case 7:
enemy.initObject(screenwidth/4-15,-30,0,2,4,20);
enemy.initObject(screenwidth/2-15,-30,0,2,4,20);
enemy.initObject(screenwidth*3/4-15,-30,0,2,4,20);
break;
case 8:
enemy.initObject(screenwidth/4-15,-10,0,2,4,20);
enemy.initObject(screenwidth/4-15,-40,0,2,4,20);
enemy.initObject(screenwidth/4-15,-80,0,2,4,20);
enemy.initObject(screenwidth*3/4-15,-10,0,2,4,20);
enemy.initObject(screenwidth*3/4-15,-40,0,2,4,20);
enemy.initObject(screenwidth*3/4-15,-80,0,2,4,20);
break;
case 9:
enemy.initObject(0,0,2,0,4,20);
enemy.initObject(0,50,2,0,4,20);
enemy.initObject(screenwidth,30,-2,0,4,20);
enemy.initObject(screenwidth,80,-2,0,4,20);
break;
case 10:
enemy.initObject(screenwidth/2-12,0,0,2,3,10);
enemy.initObject(0,0,2,2,4,20);
enemy.initObject(screenwidth,0,-2,2,4,20);
break;
case -1:
monster.initObject(2);
break;
}
}
}
else if (currentgate==3)//第三轮
{
}
}
if (alive)
plane.paint(g);
enemy.update();
enemy.paint(g);
bullets.update();
bullets.paint(g);
monster.update();
monster.paint(g);
explosions.update();
explosions.paint(g);
if (gameover)
{
alive=false;//关闭plane
if (myexplosionlife>72)
{
myexplosion.setPosition(plane.getX()-15,plane.getY()-20);
myexplosion.paint(g);
if (myexplosionlife%3==0)
myexplosion.nextFrame();
myexplosionlife--;
}
else if(myexplosionlife>0)
{
Gameover.setPosition(25,67);
Gameover.paint(g);
myexplosionlife--;
}
else
{
stop();
parent.exit();
}
}
else
{
if (keyevent)
{
if(key_up)
{
if (plane.getY()>0)
plane.move(0, -3);
plane.setFrame(0);
}
if(key_down)
{
if (plane.getY()<(screenheight-plane.getHeight()))
plane.move(0, 3);
plane.setFrame(0);
}
if(key_left)
{
if (plane.getX()>0)
plane.move( -3, 0);
plane.setFrame(1);
}
if(key_right)
{
if (plane.getX()<(screenwidth-plane.getWidth()))
plane.move(3, 0);
plane.setFrame(2);
}
if(key_fire)
{
clock--;
if (clock==0)
{
bullets.initBullet(plane.getX()+plane.getWidth()/2,plane.getY(),0,-4,true);
clock=3;
}
}
}
else
{
plane.setFrame(0);
}
}
flushGraphics();
}
private void gameInit()
{
//System.out.println(first.length);
gameover=false;
alive=true;
key_up=key_down=key_left=key_right=key_fire=false;
plane.setPosition((screenwidth-plane.getWidth())/2,screenheight-plane.getHeight());
step=-1;
myexplosionlife=108;
myexplosion.setFrame(0);
clock=3;
myView.setViewWindow(0,0,180,177);
missionfinished=0;
currentY=600;
beginlife=60;
//计算成绩
totalscore+=score;
score=0;
Begin.setPosition(35,58);
switch(currentgate)
{
case 1:
try {
img = Image.createImage("/mission1.png");
}
catch (Exception ex)
{}
break;
case 2:
try {
img = Image.createImage("/mission2.png");
}
catch (Exception ex)
{}
break;
case 3:
case 4:
}
Mission.setImage(img,img.getWidth(),img.getHeight());
Mission.setPosition(7,60);
bullets.reset();
enemy.reset();
explosions.reset();
monster.reset();
}
public void stop()
{
if(running)
{
running = false;
}
}
public void commandAction(Command c, Displayable d)
{
String cmdstr=c.getLabel();
if(cmdstr.equals("start"))
{
gameInit();
start();
removeCommand(startcmd);
addCommand(restartcmd=new Command("restart",Command.OK,1));
}
else if(cmdstr.equals("restart"))
{
stop();
while(t.isAlive());
gameInit();
start();
}
else if(cmdstr.equals("exit"))
{
stop();
parent.exit();
}
}
private void gameinput()
{
keystate=getKeyStates();
keyevent=false;
if((keystate & UP_PRESSED)!=0)//向上
{
key_up=true;keyevent=true;
}
else if((keystate & UP_PRESSED)==0)
{
if(key_up==true)
{
key_up=false;
}
}
if((keystate & DOWN_PRESSED)!=0)
{
key_down=true;keyevent=true;
}
else if((keystate & DOWN_PRESSED)==0)
{
if(key_down==true)
{
key_down=false;
}
}
if((keystate & LEFT_PRESSED)!=0)
{
key_left=true;keyevent=true;
}
else if((keystate & LEFT_PRESSED)==0)
{
if(key_left==true)
{
key_left=false;
}
}
if((keystate & RIGHT_PRESSED)!=0)
{
key_right=true;keyevent=true;
}
else if((keystate & RIGHT_PRESSED)==0)
{
if(key_right==true)
{
key_right=false;
}
}
if((keystate & FIRE_PRESSED)!=0)
{
key_fire=true;keyevent=true;
}
else if((keystate & FIRE_PRESSED)==0)
{
if(key_fire==true)
{
key_fire=false;
}
}
if(!keyevent)
{
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -