📄 game.java
字号:
else{
player.setVelocityY(-9);
sprite.setAct(Sprite.ACT_DEAD);
score+=200;
addLife();
}
}
//撞老虎
else if(sprite instanceof Tiger){
if(player.getVelocityY()<=0){
player.setAct(Sprite.ACT_DEAD);
}
else{
player.setVelocityY(-9);
if(((Tiger)sprite).removeLife()==0)
sprite.setAct(Sprite.ACT_DEAD);
score+=200;
addLife();
}
}
//撞鳄鱼
else if(sprite instanceof Cayman){
if(!((Cayman)sprite).isDown()){
player.setVelocityY(-12);
}
}
//撞Boss猴子
else if(sprite instanceof BossUnfixedMonkey){
if(player.getVelocityY()<=0){
player.setAct(Sprite.ACT_DEAD);
}
else{
player.setVelocityY(-9);
if(((BossUnfixedMonkey)sprite).removeLife()==0)
sprite.setAct(Sprite.ACT_DEAD);
score+=200;
addLife();
}
}
//撞Boss老虎
else if(sprite instanceof BossTiger){
if(player.getVelocityY()<=0){
player.setAct(Sprite.ACT_DEAD);
}
else{
player.setVelocityY(-9);
if(((BossTiger)sprite).removeLife()==0)
sprite.setAct(Sprite.ACT_DEAD);
score+=200;
addLife();
}
}
//撞Boss鳄鱼
else if(sprite instanceof BossCayman){
if(!((BossCayman)sprite).isDown()){
player.setVelocityY(-12);
if(((BossCayman)sprite).removeLife()==0)
sprite.setAct(Sprite.ACT_DEAD);
score+=200;
addLife();
}
}
}
//键按下
public void keyPressed(int keyCode){
switch(state){
case STATE_SWITCHIN:
break;
case STATE_RUN:
switch(keyCode){
//向上跳
case XCanvas.KEY_UP:
case XCanvas.KEY_NUM2:
if(player.getAct()!=Sprite.ACT_JUMP){
getPlayer().setVelocityY(-11);
}
break;
//向左跳
case XCanvas.KEY_NUM1:
if(player.getAct()!=Sprite.ACT_JUMP){
getPlayer().setVelocityY(-11);
getPlayer().setVelocityX(-2);
}
break;
//向左跳
case XCanvas.KEY_NUM3:
if(player.getAct()!=Sprite.ACT_JUMP){
getPlayer().setVelocityY(-11);
getPlayer().setVelocityX(2);
}
break;
//暂停
case XCanvas.KEY_SOFT1:
pause=!pause;
if(pause){
if(resource.isMIPD2_0)
resource.backMedia.pause();
}
else{
if(resource.isMIPD2_0)
resource.backMedia.resume();
}
break;
//呼出菜单
case XCanvas.KEY_SOFT2:
if(!pause){
state=STATE_MENU;
menuIndex=0;
if(resource.isMIPD2_0)
resource.backMedia.pause();
}
break;
}
break;
case STATE_MENU:
switch(keyCode){
case XCanvas.KEY_LEFT:
case XCanvas.KEY_NUM4:
case XCanvas.KEY_RIGHT:
case XCanvas.KEY_NUM6:
menuIndex=(menuIndex+1)%2;
break;
case XCanvas.KEY_SOFT1:
if(menuIndex==1){
//写排行榜数据和关卡信息
resource.setGateData(level,score);
resource.addHiscoreData(score);
resource.saveData();
switch(level){
case 0:
resource.releaseLevel1Game();
break;
case 1:
resource.releaseLevel2Game();
break;
case 2:
resource.releaseLevel3Game();
break;
}
resource.loadMenu();
getFrameManager().setCurrFrame(menu);
//关声音
if(resource.isMIPD2_0)
resource.backMedia.stop();
}
else{
state=STATE_RUN;
//关声音
if(resource.isMIPD2_0)
resource.backMedia.resume();
}
break;
case XCanvas.KEY_SOFT2:
state=STATE_RUN;
//关声音
if(resource.isMIPD2_0)
resource.backMedia.resume();
break;
}
break;
case STATE_WIN:
break;
case STATE_LOSE:
break;
case STATE_SWITCHOUT:
break;
}
}
//键松开
public void keyReleased(int keyCode){
switch(state){
case STATE_SWITCHIN:
break;
case STATE_RUN:
switch(keyCode){
case XCanvas.KEY_LEFT:
case XCanvas.KEY_NUM4:
case XCanvas.KEY_RIGHT:
case XCanvas.KEY_NUM6:
getPlayer().setVelocityX(0);
break;
}
break;
case STATE_MENU:
break;
case STATE_WIN:
break;
case STATE_LOSE:
break;
case STATE_SWITCHOUT:
break;
}
}
//画数据
public void paintData(Graphics g){
int i;
//画生命
for(i=0;i<life;i++){
Toolkit.drawRegion(g,resource.imgProp,9,11,11,9,5+i*12,5);
}
//画分数
Toolkit.analyzeNum2(score,scoreBuff);
for(i=0;i<scoreBuff.length;i++){
Toolkit.drawRegion(g,resource.imgProp,scoreBuff[i]*8,0,8,10,XCanvas.WIDTH-5-scoreBuff.length*8+i*8,5);
}
}
//画场景切入
public void paintSwitchIn(Graphics g){
g.setColor(0,0,0);
for(int i=0;i<8;i++){
g.fillRect(0,i*XCanvas.HEIGHT/8+(XCanvas.HEIGHT/8-curtainHeight)/2,XCanvas.WIDTH,curtainHeight);
}
}
//画场景切出
public void paintSwitchOut(Graphics g){
g.setColor(0,0,0);
for(int i=0;i<8;i++){
g.fillRect(0,i*XCanvas.HEIGHT/8+(XCanvas.HEIGHT/8-curtainHeight)/2,XCanvas.WIDTH,curtainHeight);
}
}
//画胜利
public void paintWin(Graphics g){
Toolkit.drawRegion(g,resource.imgText,0,0,55,27,(XCanvas.WIDTH-55)/2,(XCanvas.HEIGHT-27)/2);
}
//画失败
public void paintLose(Graphics g){
if(gameTime.getCurrTime()==0)
Toolkit.drawRegion(g,resource.imgText,0,75,91,27,(XCanvas.WIDTH-91)/2,(XCanvas.HEIGHT-27)/2);
else
Toolkit.drawRegion(g,resource.imgText,0,28,55,27,(XCanvas.WIDTH-55)/2,(XCanvas.HEIGHT-27)/2);
}
//画菜单
public void paintMenu(Graphics g){
Toolkit.drawRegion(g,resource.imgGameMenu,0,35,140,27,(XCanvas.WIDTH-140)/2,(XCanvas.HEIGHT-27)/2);
if(menuIndex==1){
Toolkit.drawRegion(g,resource.imgGameMenu,0,0,77,15,(XCanvas.WIDTH-77)/2,(XCanvas.HEIGHT-15)/2);
}
else{
Toolkit.drawRegion(g,resource.imgGameMenu,0,17,77,15,(XCanvas.WIDTH-77)/2,(XCanvas.HEIGHT-15)/2);
}
}
//画run
public void paintRun(Graphics g){
Object object;
if(getReel()==REEL_SINGLE && getBossCount()>0){
int posX=15;
int posY=XCanvas.HEIGHT-15;
Enumeration e=getBoss().elements();
while(e.hasMoreElements()){
object=e.nextElement();
if(object instanceof BossUnfixedMonkey){
BossUnfixedMonkey bossUnfixedMonkey=(BossUnfixedMonkey)object;
if(bossUnfixedMonkey.getNum()==0){
posX=15;
posY=XCanvas.HEIGHT-15;
}
else if(bossUnfixedMonkey.getNum()==1){
posX=15+90;
posY=XCanvas.HEIGHT-15;
}
Toolkit.drawRegion(g,resource.imgBlood,0,25,50,12,posX,posY);
Toolkit.drawRegion(g,resource.imgBlood,0,38,35,3,posX+14,posY+6);
Toolkit.drawRegion(g,resource.imgBlood,0,41,35*bossUnfixedMonkey.getLife()/10,3,posX+14,posY+6);
}
else if(object instanceof BossCayman){
BossCayman bossCayman=(BossCayman)object;
if(bossCayman.getNum()==0){
posX=15;
posY=XCanvas.HEIGHT-15;
}
else if(bossCayman.getNum()==1){
posX=15+90;
posY=XCanvas.HEIGHT-15;
}
Toolkit.drawRegion(g,resource.imgBlood,0,13,50,11,posX,posY);
Toolkit.drawRegion(g,resource.imgBlood,0,38,35,3,posX+14,posY+4);
Toolkit.drawRegion(g,resource.imgBlood,0,41,35*bossCayman.getLife()/20,3,posX+14,posY+4);
}
else if(object instanceof BossTiger){
BossTiger bossTiger=(BossTiger)object;
if(bossTiger.getNum()==0){
posX=15;
posY=XCanvas.HEIGHT-15;
}
else if(bossTiger.getNum()==1){
posX=15+90;
posY=XCanvas.HEIGHT-15;
}
Toolkit.drawRegion(g,resource.imgBlood,0,0,50,12,posX,posY);
Toolkit.drawRegion(g,resource.imgBlood,0,38,35,3,posX+14,posY+6);
Toolkit.drawRegion(g,resource.imgBlood,0,41,35*bossTiger.getLife()/10,3,posX+14,posY+6);
}
}
}
}
public void paint(Graphics g){
super.paint(g);
paintData(g);
switch(state){
case STATE_SWITCHIN:
paintSwitchIn(g);
break;
case STATE_RUN:
paintRun(g);
break;
case STATE_MENU:
paintMenu(g);
break;
case STATE_WIN:
paintWin(g);
break;
case STATE_LOSE:
paintLose(g);
break;
case STATE_SWITCHOUT:
paintSwitchOut(g);
break;
}
//画暂停
if(pause){
Toolkit.drawRegion(g,resource.imgText,0,56,47,18,(XCanvas.WIDTH-47)/2,(XCanvas.HEIGHT-18)/2);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -