⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kingsprite.java

📁 j2me的坦克大战 元代码 单机版和蓝牙联网版
💻 JAVA
字号:
import javax.microedition.lcdui.*;import javax.microedition.lcdui.game.*;import java.io.*;import java.util.*;public class KingSprite extends Sprite implements Runnable{     public static boolean gameover=false;//游戏结束     private static boolean interrupt;//运动是否暂停 ,加在run中     public static void setInterrupt(boolean interrupt) {        KingSprite.interrupt = interrupt;    }    private int HP=2;//HP值    //实用的引用    private int screenWidth,screenHeight;    private BattleCanvas bc;//设置游戏win,lose    private LayerManager layerManager;//结束游戏时,让layer画东西     public KingSprite(Image image,LayerManager layerManager,            BattleCanvas bc) {//图片长宽为12,8张图片一起,4个级别        super(image,12,12);        defineReferencePixel(6,6);        this.layerManager = layerManager;        this.bc = bc;        screenWidth = bc.getWidth();        screenHeight = bc.getHeight();        this.setRefPixelPosition(screenWidth/2, screenHeight-6);        this.setFrameSequence(new int[]{2,3});        //添加到画布        setVisible(true);        layerManager.insert(this,0);        //自启动        new Thread(this).start();    }     public void run(){         while(!gameover){            if(!interrupt){                this.nextFrame();            }            try{                Thread.sleep(500);            }catch(InterruptedException e){                e.printStackTrace();            }         }     }          public void hurt(){         HP--;        //if(HP==3){this.setFrameSequence(new int[]{2,3});}        //if(HP==2){this.setFrameSequence(new int[]{4,5});}        if(HP==1){this.setFrameSequence(new int[]{0,1});Sound.instance.metalPlayer();}        else if(HP<=0){dead();}     }     private void dead(){        this.explode();        bc.lose();//游戏失败,还有bc.win()     }      public void explode(){//爆炸方法都是被子弹线程调用        //king消失        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(200);   //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 + -