📄 nettentsprite.java
字号:
import javax.microedition.lcdui.*;import javax.microedition.lcdui.game.*;import java.io.*;import java.util.*;public class NetTentSprite extends Sprite implements Runnable{ public static boolean gameover=false;//游戏结束 private static boolean interrupt;//运动是否暂停 ,加在run中 public static void setInterrupt(boolean interrupt) { NetTentSprite.interrupt = interrupt; } //实用的引用 private int screenWidth,screenHeight; private NetBattleCanvas bc;//设置游戏win,lose private LayerManager layerManager;//结束游戏时,让layer画东西 public NetTentSprite(Image image,LayerManager layerManager, NetBattleCanvas bc) {//图片长宽为20,4张图片一起 super(image,20,20); defineReferencePixel(10,10); this.layerManager = layerManager; this.bc = bc; screenWidth = bc.getWidth(); screenHeight = bc.getHeight(); this.setRefPixelPosition(screenWidth/2, screenHeight-10); this.setFrameSequence(new int[]{0,1}); //添加到画布 setVisible(true); layerManager.insert(this,0); //自启动 new Thread(this).start(); } public void run(){//帐篷动态播放 while(!gameover){ if(!interrupt){ this.nextFrame(); } try{ Thread.sleep(2000); }catch(InterruptedException e){ e.printStackTrace(); } } } public void explode(){//爆炸方法都是被子弹线程调用 //帐篷消失 this.setVisible(false); layerManager.remove(this); //画出爆炸效果 Image explodeImage = null; try{ explodeImage = Image.createImage("/tank/tentExplode.png"); }catch(IOException e){ e.printStackTrace(); } Sprite explodeSprite = new Sprite(explodeImage,18,18); explodeSprite.defineReferencePixel(9,9); explodeSprite.setRefPixelPosition(screenWidth/2, screenHeight-9); layerManager.insert(explodeSprite, 0); explodeSprite.setVisible(true); int count=0; Sound.instance.kingExplodePlayer(); while(++count<=4){//播放张图片 try { Thread.sleep(300); //keep the explode effect on screen for a short moment }catch (InterruptedException e) { e.printStackTrace(); } while(interrupt){//如果暂停,爆炸效果仍存在 try { Thread.sleep(10); //keep the explode effect on screen for a short moment }catch (InterruptedException e) { e.printStackTrace(); } } explodeSprite.nextFrame(); } explodeSprite.setVisible(false); layerManager.remove(explodeSprite); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -