📄 netbattlecanvas.java
字号:
//(1)对本玩家操作(操作本机,发送对机) int keyStates = this.getKeyStates(); if(conn != null){conn.sentMessage(String.valueOf(keyStates));input1(keyStates);} //(2)对方玩家操作(接收对机,操作本机) int keyStatesNet; if(conn != null){ keyStatesNet = conn.getMessage();//接收信息 if(keyStatesNet!= -1){//收到信息 input0(keyStatesNet); conn.setMessage(-1);//清除按键信息 } } } render(g); try { Thread.sleep(10); } catch (InterruptedException ex) { ex.printStackTrace(); } } } private void input0(int keyStates){//不断检测按键 //System.out.println("sent:"+keyStates); if ((keyStates & UP_PRESSED) != 0) { userSprite[0].setNextDirection(Canvas.UP); userSprite[0].setIsPressed(true); } else if ((keyStates & RIGHT_PRESSED) != 0){ userSprite[0].setNextDirection(Canvas.RIGHT); userSprite[0].setIsPressed(true); } else if ((keyStates & LEFT_PRESSED) != 0) { userSprite[0].setNextDirection(Canvas.LEFT); userSprite[0].setIsPressed(true); } else if ((keyStates & DOWN_PRESSED) != 0) { userSprite[0].setNextDirection(Canvas.DOWN); userSprite[0].setIsPressed(true); } if ((keyStates & FIRE_PRESSED) !=0) { userSprite[0].fire(); } } private void input1(int keyStates){//不断检测按键 //接受按键信息 // int keyStates=0; // if(conn != null)keyStates = conn.getMessage(); //System.out.println("get:"+keyStates); if ((keyStates & UP_PRESSED) != 0) { userSprite[1].setNextDirection(Canvas.UP); userSprite[1].setIsPressed(true); } else if ((keyStates & RIGHT_PRESSED) != 0){ userSprite[1].setNextDirection(Canvas.RIGHT); userSprite[1].setIsPressed(true); } else if ((keyStates & LEFT_PRESSED) != 0) { userSprite[1].setNextDirection(Canvas.LEFT); userSprite[1].setIsPressed(true); } else if ((keyStates & DOWN_PRESSED) != 0) { userSprite[1].setNextDirection(Canvas.DOWN); userSprite[1].setIsPressed(true); } if ((keyStates & FIRE_PRESSED) !=0) { userSprite[1].fire(); } //清除按键信息 //if(conn!=null)conn.setMessage(0); } private void render(Graphics g){ layerManager.paint(g, 0, 0); //layerManager //this.serviceRepaints(); flushGraphics(0, 0, this.getWidth(), this.getHeight()); } public NetBulletSprite[] getEnemyBulletSprites() { return enemyBulletSprite; } public NetEnemySprite[] getEnemySprites(){ return this.enemySprite; } public NetBulletSprite[] getUserBulletSprites(){ return this.userBulletSprite; } public NetUserSprite[] getUserSprites() { return userSprite; } public NetPetSprite[] getPetSprites() { return petSprite; } public void commandAction(Command c, Displayable d) { if(c == pauseCommand){ this.removeCommand(c); this.addCommand(resumeCommand); stop(); pressStop = true; }else if(c == resumeCommand){ this.removeCommand(c); this.addCommand(pauseCommand); resume(); pressStop = false; }else if(c == exitCommand){ this.gameOver(); //退出到游戏进入界面 this.gameMidlet.gameMenuCanvasBack(); }else if(c == listCommand){ this.stop(); this.gameMidlet.option.gaming = true; this.gameMidlet.gameOption(); }else if(c == nextCommand){ this.gameMidlet.chooseLevel = 2; this.gameMidlet.newGame(); } } public void gameOver(){ gameover = true; NetBulletSprite.gameover = true; NetUserSprite.gameover = true; NetEnemySprite.gameover = true; NetKingSprite.gameover = true; NetTentSprite.gameover = true; NetTalismanSprite.gameover = true; NetPetSprite.gameover = true; Sound.instance.stopBack(); } public void win(){ if(lose)return;//已经lose Sound.instance.stopBack(); Sound.instance.winPlayer(); win = true; NetUserSprite.setInterrupt(true); Image winImage = null; try{ winImage = Image.createImage("/tank/win.png"); }catch(IOException e){ e.printStackTrace(); } Sprite winSprite = new Sprite(winImage); winSprite.defineReferencePixel(winImage.getWidth()/2,winImage.getHeight()/2); winSprite.setRefPixelPosition(this.getWidth()/2, this.getHeight()/2); winSprite.setVisible(true); layerManager.insert(winSprite,0); //处理按键 this.removeCommand(pauseCommand); this.removeCommand(resumeCommand); this.removeCommand(listCommand); if(NetBattleCanvas.level==1)this.addCommand(nextCommand); } public void lose(){//kingSprite userSprite调用 if(win)return;//已经win Sound.instance.stopBack(); Sound.instance.gameoverPlayer(); lose = true; NetUserSprite.setInterrupt(true); Image loseImage = null; try{ loseImage = Image.createImage("/tank/lose.png"); }catch(IOException e){ e.printStackTrace(); } Sprite loseSprite = new Sprite(loseImage); loseSprite.defineReferencePixel(loseImage.getWidth()/2,loseImage.getHeight()/2); loseSprite.setRefPixelPosition(this.getWidth()/2, this.getHeight()/2); loseSprite.setVisible(true); layerManager.insert(loseSprite,0); //处理按键 this.removeCommand(pauseCommand); this.removeCommand(resumeCommand); this.removeCommand(listCommand); //this.addCommand(exitCommand); } public void resume(){ Sound.instance.resumeBack(); NetBattleCanvas.setInterrupt(false); NetTentSprite.setInterrupt(false); NetKingSprite.setInterrupt(false); NetBulletSprite.setInterrupt(false); NetEnemySprite.setInterrupt(false); NetUserSprite.setInterrupt(false); NetTalismanSprite.setInterrupt(false); NetPetSprite.setInterrupt(false); } public void stop(){ Sound.instance.stopBack(); interrupt = true; NetTentSprite.setInterrupt(true); NetKingSprite.setInterrupt(true); NetBulletSprite.setInterrupt(true); NetEnemySprite.setInterrupt(true); NetUserSprite.setInterrupt(true); NetTalismanSprite.setInterrupt(true); NetPetSprite.setInterrupt(true); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -