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

📄 actiongamecanvasv2.java~2~

📁 JAVA GAME it include collide detection
💻 JAVA~2~
字号:
import javax.microedition.lcdui.*;import java.io.*;import javax.microedition.lcdui.game.*;   // Use GameCanvas of MIDP 2.0public class ActionGameCanvasV2 extends GameCanvas implements Runnable{  Thread actionThread;  GameMIDletV2 parent;  int millPerTick = 400;  // animation speed  Sprite[] enemies;  int enySeq[] = new int[] { 0, 1 };  int enyStep;  LayerManager lm;  public ActionGameCanvasV2(GameMIDletV2 parent) {    super(true);    this.parent = parent;    actionThread = new Thread(this);    initCanvas();    actionThread.start();  }  //===========================================================================  public void initCanvas(){    int i;    try{      lm = new LayerManager();      //-----------------      initEnemy();      for (i=0; i<3; i++)        lm.append(enemies[i]);      //-----------------      //  other character put here !    }catch (Exception e) {      System.out.println("Exceiption here" + e.getMessage());      e.printStackTrace();    }  }   // end-of  initCanvas()  //===========================================================================  public void initEnemy(){    int i;    enemies = new Sprite[3];    enemies[0] = createSprite("/infant.png", 32, 32);    enemies[1] = createSprite("/thief.png", 32, 32);    enemies[2] = createSprite("/wizard.png", 32, 32);    System.out.println("Create Sprite OK.");    for (i=0; i<3; i++){      enemies[i].setFrameSequence( enySeq );      // SET frame sequence      enemies[i].defineReferencePixel(16, 16);      enemies[i].setPosition(60, i*(enemies[i].getHeight()+10)+10);      enemies[i].setRefPixelPosition(enemies[i].getRefPixelX(), enemies[i].getRefPixelY());    }    enyStep = 5;  }  //===========================================================================  private Sprite createSprite(String imgPath, int fWidth, int fHeight) {    Image img = null;    try {      img = Image.createImage(imgPath);    } catch (Exception e) {      System.out.println("Error create Sprite");    }    return new Sprite(img, fWidth, fHeight);  }  //===========================================================================  public void keyPressed(int keyCode) {  }  public void clearScreen(Graphics g){    g.setColor(255,255,255);    g.fillRect(0, 0, getWidth(), getHeight());  }  //===========================================================================  public void drawGraphics(Graphics g) {    int i;    clearScreen(g);    for (i=0; i<3; i++){      enemies[i].setPosition(enemies[i].getX(), enemies[i].getY());      enemies[i].nextFrame();      enemies[i].setTransform(Sprite.TRANS_MIRROR);    }    // draw enemy here    lm.paint(g, 0, 0);    flushGraphics();  }  //===========================================================================  public void updateEnemyPos(){    for (int i=0; i<enemies.length; i++)    {      enemies[i].setPosition( enemies[i].getX()-enyStep,  enemies[i].getY());      if (enemies[i].getX() < ( 0 - enemies[i].getWidth()/2 ) ){        enemies[i].setPosition( getWidth(),                                i*(enemies[i].getHeight()+10)+10);      }    }  // end-of for-loop  }  //===========================================================================  public void run(){    Graphics g = getGraphics();    while (parent.running){      // game running      updateEnemyPos();      //getInput();      drawGraphics(g);      try{        Thread.sleep(millPerTick);      } catch (InterruptedException e){      }    }  // end-of while-loop  }  // end-of run()}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -