📄 gamescreen.java
字号:
}
gameState = GameConstant.STATE_MENU_SELECT;
break;
case 2: // 设置
gameState = GameConstant.STATE_GAME_SETTING;
break;
case 3: // 帮助
gameMenu.initHelp();
gameState = GameConstant.STATE_GAME_HELP;
break;
case 4: // 退出游戏
isShow = false;
isExit = true;
// if (world.isBossAppear() != true) { //BOSS没有死亡
// world.cleanNotUsedObject();
//
// if (world.getGameLevel() == 2) {
// world.cleanObjectBeforeSecBoss();
// } else if (world.getGameLevel() == 3) {
// world.cleanObjectBeforeThBoss();
// }
// }
//
// world.cleanAllObecjt();
//
// GameScreen gameScreen = GameScreen.getInstance();
// gameScreen.StopSound();
//
// world.cleanPlane();
//
// // 加载游戏菜单
// gameMenu.initGameMenu();
//
// world.setBossAppear(false);
// gameState = GameConstant.STATE_MENU_SELECT;
break;
}
}
keyReset();
break;
case GameConstant.STATE_GAME_SETTING:
if((pressedKey & GameConstant.KEY_L) != 0
|| (pressedKey & GameConstant.KEY_U) != 0){
setCount = --setCount < 0 ? 1 : setCount;
}else if((pressedKey & GameConstant.KEY_R) != 0
|| (pressedKey & GameConstant.KEY_D) != 0){
setCount = ++setCount > 1 ? 0 : setCount;
}else if((pressedKey & GameConstant.KEY_ATTACK) != 0
|| (pressedKey & GameConstant.KEY_SOFT1) != 0){
if(setCount == 0){
if(player == null){
isPlaySound = true;
if(world.isBossAppear()){
GameConstant.MUSIC_GAME_STATE = GameConstant.MUSIC_GAME_BOSS;
}else{
GameConstant.MUSIC_GAME_STATE = GameConstant.MUSIC_GAME_RUN;
}
playSound(GameConstant.MUSIC_GAME_STATE);
}
}else if(setCount == 1){
StopSound();
isPlaySound = false;
}
}else if((pressedKey & GameConstant.KEY_SOFT2) != 0){
setCount = 0;
gameState = GameConstant.STATE_GAME_MENU;
}
keyReset();
break;
case GameConstant.STATE_GAME_BOSSAPPEAR: //BOSS出现
world.loadBoss();
break;
}
} catch (Exception ex) {
System.out.println("fuck ");
ex.printStackTrace();
}
}
protected void paint(Graphics graphics) {
Tool.fillScreen(graphics, 0);
graphics.translate(0,6);
try {
//Graphics graphics = offScreenBuffer.getGraphics();
switch (gameState) {
case GameConstant.STATE_LOGO1:
Tool.fillScreen(graphics, 0xffffff);
gameMenu.drawLogo1(graphics, GameConstant.iSCREEN_WIDTH >> 1,
GameConstant.iSCREEN_HEIGHT >> 1, GameConstant.CENTER);
break;
case GameConstant.STATE_LOGO2:
Tool.fillScreen(graphics, 0xffffff);
gameMenu.drawLogo2(graphics, GameConstant.iSCREEN_WIDTH >> 1,
GameConstant.iSCREEN_HEIGHT >> 1, GameConstant.CENTER);
break;
case GameConstant.STATE_ISSOUNDON:
Tool.fillScreen(graphics, 0xffffff);
gameMenu.drawIsPlaySound(graphics, 12);
break;
case GameConstant.STATE_MENU_AUTOSHOW:
Tool.fillScreen(graphics, 0xffffff);
gameMenu.drawAutoMenu(graphics, menuShowTimes, menu2ShowTimes,
lightChangeTimes, GameConstant.TOPLEFT);
break;
case GameConstant.STATE_MENU_SELECT:
Tool.fillScreen(graphics, 0xffffff);
gameMenu.drawMenuSelect(graphics, selectCount, menuShowTimes,
menu2ShowTimes, lightChangeTimes, GameConstant.TOPLEFT);
break;
case GameConstant.STATE_MENU_SPLANE:
Tool.fillScreen(graphics, 0xffffff);
gameMenu.drawMenuSelectPlane(graphics, planeType);
break;
case GameConstant.STATE_MENU_HELP:
case GameConstant.STATE_GAME_HELP:
Tool.fillScreen(graphics, 0xffffff);
gameMenu.drawMenuHelp(graphics, helpCount);
break;
case GameConstant.STATE_MENU_SCORE:
Tool.fillScreen(graphics, 0xffffff);
gameMenu.showScore(graphics,egNums,rmsMobile.getPlayerScore());
break;
case GameConstant.STATE_MENU_SWEAPON:
Tool.fillScreen(graphics, 0xffffff);
gameMenu.drawMenuSelectWeapon(graphics, weaponType);
break;
case GameConstant.STATE_GAME_LOAD:
//Tool.fillScreen(graphics,0);
showProgress(graphics);
break;
case GameConstant.STATE_GAME_RUN:
world.drawMain(graphics);
if(planeActor.getLiftNum() < 0){
world.drawPlaneDie(graphics);
}
break;
case GameConstant.STATE_GAME_OVER:
Tool.fillScreen(graphics, 0xffffff);
gameMenu.drawMenuScore(graphics,BattlePlaneActor.iScore,egNum,egNumIdx);
break;
case GameConstant.STATE_GAME_MENU:
Tool.fillScreen(graphics, 0xffffff);
gameMenu.drawGameMenu(graphics,gameMenuCount);
break;
// Tool.fillScreen(graphics, 0xffffff);
// gameMenu.drawMenuHelp(graphics, helpCount);
// break;
case GameConstant.STATE_MENU_SETTING:
case GameConstant.STATE_GAME_SETTING:
Tool.fillScreen(graphics, 0xffffff);
gameMenu.drawSetMenu(graphics,setCount);
break;
case GameConstant.STATE_GAME_BOSSAPPEAR:
world.drawBossAppear(graphics);
break;
// case GameConstant.STATE_GAME_TASKCOMPLETE:
// world.drawTaskComplete(graphics);
// break;
// case GameConstant.STATE_PLANE_DIE:
// //Tool.fillScreen(graphics, 0xffffff);
// world.drawPlaneDie(graphics);
// break;
}
//绘画缓冲图
// graphics.setClip(0, 0, GameConstant.iSCREEN_WIDTH, 6);
// graphics.setColor(0);
// graphics.fillRect(0, 0, GameConstant.iSCREEN_WIDTH, 6);
// graphics.setClip(0, 0, GameConstant.iSCREEN_WIDTH,
// GameConstant.iSCREEN_HEIGHT + 12);
//
// graphics.drawImage(offScreenBuffer, 0, 6, GameConstant.TOPLEFT);
//
// graphics.setClip(0, 6 + GameConstant.iSCREEN_HEIGHT,
// GameConstant.iSCREEN_WIDTH,
// GameConstant.iSCREEN_HEIGHT + 12);
// graphics.setColor(0);
// graphics.fillRect(0, 6 + GameConstant.iSCREEN_HEIGHT,
// GameConstant.iSCREEN_WIDTH,
// 12 + GameConstant.iSCREEN_HEIGHT);
// graphics.setClip(0, 0, GameConstant.iSCREEN_WIDTH,
// GameConstant.iSCREEN_HEIGHT + 12);
graphics.translate(0,-6);
graphics.setClip(0, 0, GameConstant.iSCREEN_WIDTH,
GameConstant.iSCREEN_HEIGHT + 12);
//graphics.setClip(0, 0, GameConstant.iSCREEN_WIDTH, 6);
graphics.setColor(0);
graphics.fillRect(0, 0, GameConstant.iSCREEN_WIDTH, 6);
// graphics.setClip(0, 0, GameConstant.iSCREEN_WIDTH,
// GameConstant.iSCREEN_HEIGHT);
// graphics.setClip(0, 6 + GameConstant.iSCREEN_HEIGHT,
// GameConstant.iSCREEN_WIDTH,
// GameConstant.iSCREEN_HEIGHT + 12);
graphics.fillRect(0, 214, GameConstant.iSCREEN_WIDTH, 6);
} catch (Exception ex) {
System.out.println("suck");
ex.printStackTrace();
}
}
// 切换选择武器图片,4个按键选择武器不相同
public byte getNextWeapon(byte type) {
++weaponType[type];
switch (type) {
case 0:
while ((weaponType[type] == weaponType[1])
|| (weaponType[type] == weaponType[2])
|| (weaponType[type] == weaponType[3])) {
++weaponType[type];
}
break;
case 1:
while ((weaponType[type] == weaponType[0])
|| (weaponType[type] == weaponType[2])
|| (weaponType[type] == weaponType[3])) {
++weaponType[type];
}
break;
case 2:
while ((weaponType[type] == weaponType[0])
|| (weaponType[type] == weaponType[1])
|| weaponType[type] == weaponType[3]) {
++weaponType[type];
}
break;
case 3:
while ((weaponType[type] == weaponType[0])
|| (weaponType[type] == weaponType[1])
|| weaponType[type] == weaponType[2]) {
++weaponType[type];
}
break;
}
if (weaponType[type] > 6) {
weaponType[type] = 0;
getNextWeapon(type);
}
return weaponType[type];
}
public void keyReset() {
key = 0;
pressedKey = 0;
releasedKey = 0;
}
public void initialLoadData() {
try {
imageLoad = Image.createImage("/load.png");
imageLoading = Image.createImage("/loading.png");
} catch (IOException ex) {
ex.printStackTrace();
}
}
// protected void keyReleased(int keyCode) {
// switch (keyCode) {
// // 方向键上或者是2
// case Canvas.KEY_NUM2:
// case GameConstant.PADDLE_UP:
// isUpkeyPress = false;
// break;
// // 方向键为下或者是8
// case Canvas.KEY_NUM8:
// case GameConstant.PADDLE_DOWN:
// isDownKeyPress = false;
// break;
// // 方向键为左或者是4
// case Canvas.KEY_NUM4:
// case GameConstant.PADDLE_LEFT:
// isLeftKeyPress = false;
// break;
// // 方向键为右或者是6
// case Canvas.KEY_NUM6:
// case GameConstant.PADDLE_RIGHT:
// isRightKeyPress = false;
// break;
// }
// }
public void keyReleased(int keyCode) {
switch (keyCode) {
case Canvas.KEY_NUM2:
case GameConstant.PADDLE_UP:
key &= 0xfffffffb;
break;
case Canvas.KEY_NUM8:
case GameConstant.PADDLE_DOWN:
key &= 0xfffffff7;
break;
case Canvas.KEY_NUM4:
case GameConstant.PADDLE_LEFT:
key &= 0xfffffffe;
break;
case Canvas.KEY_NUM6:
case GameConstant.PADDLE_RIGHT:
key &= 0xfffffffd;
break;
case Canvas.KEY_NUM1:
key &= 0xffffffef;
break;
case Canvas.KEY_NUM3:
key &= 0xfffffdff;
break;
case Canvas.KEY_NUM7:
key &= 0xffffffbf;
break;
case Canvas.KEY_NUM9:
key &= 0xffffefff;
break;
case Canvas.KEY_NUM5:
case GameConstant.PADDLE_FIRE:
key &= 0xffffffdf;
break;
}
// planeActor = BattlePlaneActor.getInstance();
if(gameState == GameConstant.STATE_GAME_RUN){
planeActor.setAction((byte)0);
planeActor.setCurrentFrame(-1);
}
}
protected void keyPressed(int keyCode) {
switch (keyCode) {
// 方向键上或者是2
case Canvas.KEY_NUM2:
case GameConstant.PADDLE_UP:
key |= GameConstant.KEY_U;
break;
// 方向键为下或者是8
case Canvas.KEY_NUM8:
case GameConstant.PADDLE_DOWN:
key |= GameConstant.KEY_D;
break;
// 方向键为左或者是4
case Canvas.KEY_NUM4:
case GameConstant.PADDLE_LEFT:
key |= GameConstant.KEY_L;
break;
// 方向键为右或者是6
case Canvas.KEY_NUM6:
case GameConstant.PADDLE_RIGHT:
key |= GameConstant.KEY_R;
break;
// 数字键1
case Canvas.KEY_NUM1:
key |= GameConstant.KEY_NUM1;
break;
// 数字键3
case Canvas.KEY_NUM3:
key |= GameConstant.KEY_NUM3;
break;
// 数字键7
case Canvas.KEY_NUM7:
key |= GameConstant.KEY_NUM7;
break;
// 数字键9
case Canvas.KEY_NUM9:
key |= GameConstant.KEY_NUM9;
break;
// key |= GameConstant.KEY_NUM5;
// break;
// 开火键 数字键5
case Canvas.KEY_NUM5:
case GameConstant.PADDLE_FIRE:
key |= GameConstant.KEY_ATTACK;
break;
// 左软按键
case GameConstant.PADDLE_SOFT1:
key |= GameConstant.KEY_SOFT1;
// 右软按键
case GameConstant.PADDLE_SOFT2:
key |= GameConstant.KEY_SOFT2;
}
}
private void acquireKey(int keyCode) {
pressedKey = ~releasedKey & keyCode;
releasedKey = keyCode;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -