📄 actiongamecanvasv2.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 + -