📄 gamecanvas.java
字号:
board3[8][3]=1;
board3[8][4]=1;
board3[0][4]=2;
board4[2][3]=1;
board4[2][4]=1;
board4[3][4]=2;
p=4;//加电网
}
else if(level==8){
speed=new int[]{1,-2,2,-1};
board1[0][2]=1;//猴子
board1[3][2]=4;//蜜蜂
board1[5][2]=6;//蛇
board2[2][2]=9;//鄂鱼静态
board2[5][2]=1;//猴子
board2[7][2]=12;//假美眉
board3[2][2]=9;//鄂鱼静态
board3[5][2]=1;//猴子
board3[7][2]=12;//假美眉
board3[0][2]=6;//蛇
board4[2][2]=4;//蜜蜂
board4[5][2]=4;//蜜蜂
board4[7][2]=1;//假美眉
board4[6][2]=10;//可吃物动画
board1[6][3]=1;//为0代表板子,为1代表弹床,
board1[7][3]=1;//弹床
board1[6][4]=1;//为0代表不能上下跳跃,为一代表只能下跳,为二代表只能上跳,为三代表可以上下跳
board1[7][4]=3;
board1[8][4]=2;
board3[8][3]=1;
board3[8][4]=1;
board3[0][4]=2;
board4[2][3]=1;
board4[2][4]=1;
board4[3][4]=2;
p=4;//加电网
}
else if(level==9){
speed=new int[]{1,-2,2,-1};
board1[0][2]=1;//猴子
board1[3][2]=4;//蜜蜂
board1[5][2]=6;//蛇
board2[2][2]=9;//鄂鱼静态
board2[5][2]=1;//猴子
board2[7][2]=12;//假美眉
board3[2][2]=9;//鄂鱼静态
board3[5][2]=1;//猴子
board3[7][2]=12;//假美眉
board3[0][2]=6;//蛇
board4[2][2]=4;//蜜蜂
board4[5][2]=4;//蜜蜂
board4[7][2]=1;//假美眉
board4[6][2]=10;//可吃物动画
board1[6][3]=1;//为0代表板子,为1代表弹床,
board1[7][3]=1;//弹床
board1[6][4]=1;//为0代表不能上下跳跃,为一代表只能下跳,为二代表只能上跳,为三代表可以上下跳
board1[7][4]=3;
board1[8][4]=2;
board3[8][3]=1;
board3[8][4]=1;
board3[0][4]=2;
board4[2][3]=1;
board4[2][4]=1;
board4[3][4]=2;
p=5;//加电网
}
else if(level==10){
speed=new int[]{1,-2,2,-1};
board1[0][2]=1;//猴子
board1[3][2]=4;//蜜蜂
board1[5][2]=6;//蛇
board2[2][2]=9;//鄂鱼静态
board2[5][2]=1;//猴子
board2[7][2]=12;//假美眉
board3[2][2]=9;//鄂鱼静态
board3[5][2]=1;//猴子
board3[7][2]=12;//假美眉
board3[0][2]=6;//蛇
board4[2][2]=4;//蜜蜂
board4[5][2]=4;//蜜蜂
board4[7][2]=1;//假美眉
board4[6][2]=10;//可吃物动画
board1[6][3]=1;//为0代表板子,为1代表弹床,
board1[7][3]=1;//弹床
board1[6][4]=1;//为0代表不能上下跳跃,为一代表只能下跳,为二代表只能上跳,为三代表可以上下跳
board1[7][4]=3;
board1[8][4]=2;
board3[8][3]=1;
board3[8][4]=1;
board3[0][4]=2;
board4[2][3]=1;
board4[2][4]=1;
board4[3][4]=2;
p=5;//加电网
}
}
void doStartApp() {
switch(gameState) {
case TITLE:
doTitle();
break;
case GAME_START:
case GAME_PLAYING:
isPaused = true;
isStopped = true;
removeCommand(pauseCmd);
removeCommand(resumeCmd);
addCommand(resumeCmd);
break;
default:
isPaused = false;
break;
}
}
void doPauseApp() {
switch(gameState) {
case TITLE:
break;
default:
isPaused = true;
isStopped = true;
break;
}
}
private void doTitle() {
gameState = TITLE;
removeCommand(pauseCmd);
removeCommand(resumeCmd);
removeCommand(quitCmd);
repaint();
}
private void doThreadStart() {
new Thread(this).start();
}
private void doGameStop() {
isStopped = true;
}
private void doPauseOrResume() {
if(isPaused) {
isPaused = false;
isStopped = false;
doThreadStart();
}else {
isPaused = true;
doGameStop();
}
repaint();
}
public void commandAction(Command c, Displayable s) {
if(c == exitCmd) {
main.doExit();
}else if(c == pauseCmd) {
removeCommand(pauseCmd);
addCommand(resumeCmd);
doPauseOrResume();
}else if(c == resumeCmd) {
removeCommand(resumeCmd);
addCommand(pauseCmd);
doPauseOrResume();
}else if(c == quitCmd) {
doGameStop();
removeCommand(pauseCmd);
removeCommand(resumeCmd);
removeCommand(quitCmd);
doTitle();
}
}
protected void paint(Graphics g) {
g.setColor(0x00000000);
g.fillRect(0, 0, screenWidth, screenHeight);
g.setFont(defFont);
String drawSt;
int drawX, drawY,stWidth;
int stHeight = defFont.getHeight();
switch(gameState) {
case TITLE://显示标题时
g.drawImage(back1,0,0,Graphics.TOP|Graphics.LEFT);
switch(menuCount){
case 0:
g.drawImage(imgs[curMenu],8+curMenu*23,47,Graphics.TOP|Graphics.LEFT);
return;
case 1:
g.setColor(255, 0, 0);
g.drawString("说明:SELECT是发弹",screenWidth/2,20,Graphics.TOP|Graphics.HCENTER);
g.drawString("LEFT,RIGHT控制方向" ,screenWidth/2,40,Graphics.TOP|Graphics.HCENTER);
g.drawString(" 每得八千分弹药补充100" ,screenWidth/2,60,Graphics.TOP|Graphics.HCENTER);
g.drawString("炮塔两边落五个伞兵游戏结束" ,screenWidth/2,80,Graphics.TOP|Graphics.HCENTER);
return;
}
return;
case GAME_START://游戏开始时
//描绘游戏开始画面
g.drawImage(back,0,0,Graphics.TOP|Graphics.LEFT);
g.setColor(255,0,0);
drawSt = "Ready go !";
stWidth = defFont.stringWidth(drawSt);
drawX = (screenWidth - stWidth) / 2;
drawY = (screenHeight - stHeight) / 2;
g.drawString(drawSt, drawX, drawY, Graphics.TOP|Graphics.LEFT);
return;
case GAME_PLAYING:
case GAME_END://游戏中或是游戏结束时
//画背景图片
g1.drawImage(back, 0, 0, Graphics.TOP | Graphics.LEFT);
g1.setColor(255,0,0);
g1.drawString(String.valueOf(minute)+":"+String.valueOf(second),64,0,Graphics.TOP|Graphics.LEFT);
if(win){
g.setColor(255,0,0);
drawSt = "WIN!";
stWidth = defFont.stringWidth(drawSt);
drawX = (screenWidth - stWidth) / 2;
drawY = (screenHeight - stHeight) / 2;
g1.drawString(drawSt, drawX, drawY, Graphics.TOP|Graphics.LEFT);
}
if(GameOver){
g.setColor(255,0,0);
drawSt = "重新开始!";
stWidth = defFont.stringWidth(drawSt);
drawX = (screenWidth - stWidth) / 2;
drawY = (screenHeight - stHeight) / 2;
g1.drawString(drawSt, drawX, drawY, Graphics.TOP|Graphics.LEFT);
}
g1.setColor(255,0,0);
g1.drawString("第"+String.valueOf(level)+"关",screenWidth-25, 0, Graphics.TOP|Graphics.LEFT);
g1.drawString("共"+String.valueOf(p2)+"次",0, 0, Graphics.TOP|Graphics.LEFT);
man.doDraw(g1);
if((man.getState()!=5)&&(man.getState()!=6))
g1.drawImage(m[12],128-m[12].getWidth(),73-m[12].getHeight(),Graphics.TOP|Graphics.LEFT);
//画每一关的板子,弹簧板
for(int i=0;i<9;i++){
//画两种板子
if(board1[i][3]==0)
g1.drawImage(img1,board1[i][0],board1[i][1],Graphics.TOP|Graphics.LEFT);
if(board1[i][3]==1)
g1.drawImage(img2,board1[i][0],board1[i][1],Graphics.TOP|Graphics.LEFT);
//画猴子
if(board1[i][2]==1){//为动态图片
g1.drawImage(m[0],board1[i][0],board1[i][1]-m[0].getHeight(),Graphics.TOP|Graphics.LEFT);
w++;
if(w>10){
board1[i][2]=2;
w=0;
}
}else if(board1[i][2]==2){
g1.drawImage(m[1],board1[i][0],board1[i][1]-m[0].getHeight()-10,Graphics.TOP|Graphics.LEFT);
w++;
if(w>2){
board1[i][2]=3;
w=0;
}
}else if(board1[i][2]==3){
g1.drawImage(m[2],board1[i][0],board1[i][1]-m[0].getHeight()-7,Graphics.TOP|Graphics.LEFT);
w++;
if(w>2){
board1[i][2]=1;
w=0;
}
}
//画蜜蜂
if(board1[i][2]==4){
g1.drawImage(m[3],board1[i][0],board1[i][1]-m[3].getHeight()-5,Graphics.TOP|Graphics.LEFT);
board1[i][2]=5;
}
else if(board1[i][2]==5){
g1.drawImage(m[4],board1[i][0],board1[i][1]-m[4].getHeight()-5,Graphics.TOP|Graphics.LEFT);
board1[i][2]=4;
}
//画蛇
if(board1[i][2]==6){
g1.drawImage(m[5],board1[i][0],board1[i][1]-m[5].getHeight(),Graphics.TOP|Graphics.LEFT);
w3++;
if(w3>10){
board1[i][2]=7;
w3=0;
}
}else if(board1[i][2]==7){
g1.drawImage(m[6],board1[i][0]-3,board1[i][1]-m[6].getHeight(),Graphics.TOP|Graphics.LEFT);
w3++;
if(w3>2){
board1[i][2]=6;
w3=0;
}
}
//画人
if(board1[i][2]==8){
g1.drawImage(m[7],board1[i][0],board1[i][1]-m[7].getHeight(),Graphics.TOP|Graphics.LEFT);
}
//画狼人
if(board1[i][2]==9){
g1.drawImage(m[8],board1[i][0],board1[i][1]-m[8].getHeight(),Graphics.TOP|Graphics.LEFT);
}
//画球
if(board1[i][2]==10){
g1.drawImage(m[9],board1[i][0],board1[i][1]-m[9].getHeight(),Graphics.TOP|Graphics.LEFT);
board1[i][2]=11;
}else if(board1[i][2]==11){
g1.drawImage(m[10],board1[i][0],board1[i][1]-m[10].getHeight(),Graphics.TOP|Graphics.LEFT);
board1[i][2]=10;
}
//画假美眉
if(board1[i][2]==12){
g1.drawImage(m[11],board1[i][0],board1[i][1]-m[11].getHeight(),Graphics.TOP|Graphics.LEFT);
}
}
for(int i=0;i<9;i++){
if(board2[i][3]==0)
g1.drawImage(img1,board2[i][0],board2[i][1],Graphics.TOP|Graphics.LEFT);
if(board2[i][3]==1)
g1.drawImage(img2,board2[i][0],board2[i][1],Graphics.TOP|Graphics.LEFT);
//画猴子
if(board2[i][2]==1){//为动态图片
g1.drawImage(m[0],board2[i][0],board2[i][1]-m[0].getHeight(),Graphics.TOP|Graphics.LEFT);
w++;
if(w>10){
board2[i][2]=2;
w=0;
}
}else if(board2[i][2]==2){
g1.drawImage(m[1],board2[i][0],board2[i][1]-m[0].getHeight()-10,Graphics.TOP|Graphics.LEFT);
w++;
if(w>2){
board2[i][2]=3;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -