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

📄 enemy.java

📁 本j2me坦克游戏是在Nokia平台下开发的
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * @(#)Enemy.java	0.20 02/11/07 * Copyright (c) 2002 InterScape Creations. All Rights Reserved. */import javax.microedition.lcdui.*;import java.util.Random;class Enemy implements Runnable {    private static Graphics G = null;    static Random myrandom = new Random();	boolean alive;    int posX, posY;    int direction;    int speed;    int sp;	boolean shootFlag;	int bulletNo, bulletCnt;    int bulletLevel;   //symbol the enemy's bullet speed	Image enemyImage;	Image drawEnemy;	Image enemyLeft;	Image enemyRight;	Image enemyUp;	Image enemyDown;    int frameWidth, frameHeight;    boolean ifTimer;    int kind;    int lifeCount = 0;    int bulletCount;    boolean grassPaint = false;    Enemy() {        ifTimer = false;		shootFlag = false;        bulletLevel = 0;		direction = 0x14;	// 1--left 2--right 3--up 4--down		// Load the object images        try {        	enemyImage = Image.createImage("/tank_en.png");        	frameWidth = enemyImage.getWidth()/4;        	frameHeight = enemyImage.getHeight();            enemyLeft = Image.createImage(frameWidth, frameHeight);            G = enemyLeft.getGraphics();            G.drawImage(enemyImage, 0, 0, 20);            enemyRight = Image.createImage(frameWidth, frameHeight);            G = enemyRight.getGraphics();            G.drawImage(enemyImage, -frameWidth, 0, 20);            enemyUp = Image.createImage(frameWidth, frameHeight);            G = enemyUp.getGraphics();            G.drawImage(enemyImage, -frameWidth*2, 0, 20);            enemyDown = Image.createImage(frameWidth, frameHeight);            G = enemyDown.getGraphics();            G.drawImage(enemyImage, -frameWidth*3, 0, 20);            G = null;           	drawEnemy = enemyDown;        }        catch(Exception exception) {            System.out.println(exception);        }    }    //add by johnson to make all kinds of tankers    //kind: 0-ordinary tanker, 1-red tanker, 2-iron tanker, 3-clever tanker    public Enemy(int kind) {        this.kind = kind;        frameWidth = ImageHelper.frameWidth;        frameHeight = ImageHelper.frameHeight;        switch(kind){            case 0:             //   System.out.println("normal tanker");                speed = SuperTank.canvas.tileW/2;                sp = speed;                shootFlag = false;                bulletCount = 50;                bulletLevel = 0;                direction = 0x14; // 1--left 2--right 3--up 4--down                // Load the object images               /* try {                    enemyImage = Image.createImage("/tank_en.png");                }                catch (Exception exception) {                    System.out.println(exception);                }*/               enemyLeft = ImageHelper.enemyLeft;               enemyRight = ImageHelper.enemyRight;               enemyUp = ImageHelper.enemyUp;               enemyDown = ImageHelper.enemyDown;                break;            case 1:   //red tanker                speed = SuperTank.canvas.tileW/2;                sp = speed;                shootFlag = false;                bulletLevel = 0;                bulletCount = 25;                direction = 0x14; // 1--left 2--right 3--up 4--down                // Load the object images               /* try {                    enemyImage = Image.createImage("/redtank.png");                }                catch (Exception exception) {                    System.out.println(exception);                }*/              enemyLeft = ImageHelper.enemyLeftRed;              enemyRight = ImageHelper.enemyRightRed;              enemyUp = ImageHelper.enemyUpRed;              enemyDown = ImageHelper.enemyDownRed;                break;            case 2:   //iron tanker             //   System.out.println("iron tanker");                speed = SuperTank.canvas.tileW/2;                sp = speed;                shootFlag = false;                bulletLevel = 0;                bulletCount = 50;                lifeCount = 3;                direction = 0x14; // 1--left 2--right 3--up 4--down                // Load the object images                /*try {                    enemyImage = Image.createImage("/greentank.png");                }                catch (Exception exception) {                    System.out.println(exception);                }*/               enemyLeft = ImageHelper.enemyLeftIron;                enemyRight = ImageHelper.enemyRightIron;                enemyUp = ImageHelper.enemyUpIron;                enemyDown = ImageHelper.enemyDownIron;                break;            case 3:                speed = SuperTank.canvas.tileW/2;                sp = speed;                shootFlag = false;                bulletLevel = 0;                bulletCount = 15;                direction = 0x14; // 1--left 2--right 3--up 4--down                // Load the object images                /*try {                    enemyImage = Image.createImage("/tank_en.png");                }                catch (Exception exception) {                    System.out.println(exception);                }*/                enemyLeft = ImageHelper.enemyLeft;                enemyRight = ImageHelper.enemyRight;                enemyUp = ImageHelper.enemyUp;                enemyDown = ImageHelper.enemyDown;                break;            default:                break;        }        drawEnemy = enemyDown;       /* try {            frameWidth = enemyImage.getWidth() / 4;            frameHeight = enemyImage.getHeight();            enemyLeft = Image.createImage(frameWidth, frameHeight);            G = enemyLeft.getGraphics();            G.drawImage(enemyImage, 0, 0, 20);            enemyRight = Image.createImage(frameWidth, frameHeight);            G = enemyRight.getGraphics();            G.drawImage(enemyImage, -frameWidth, 0, 20);            enemyUp = Image.createImage(frameWidth, frameHeight);            G = enemyUp.getGraphics();            G.drawImage(enemyImage, -frameWidth * 2, 0, 20);            enemyDown = Image.createImage(frameWidth, frameHeight);            G = enemyDown.getGraphics();            G.drawImage(enemyImage, -frameWidth * 3, 0, 20);            G = null;            drawEnemy = enemyDown;        }        catch (Exception exception) {            System.out.println(exception);        }*/    }   /* public void setProperty(int kind){    }*/	public void run() {	}    synchronized void paint(Graphics g) {    	int fillposX = posX;    	int fillposY = posY;    	int fillwidth, fillheigh;		int i;    	fillwidth = frameWidth;    	fillheigh = frameHeight;		if(!ifTimer){            if (!shootFlag && ( (myrandom.nextInt() & 2) == 0) &&                (bulletCnt == 0)) {                shootFlag = true;                i = 0;                for (i = 1; i < SuperTank.canvas.maxBullet; i++) {                    if (SuperTank.canvas.bulletAlive[i] == false)                        break;                }                if ( (i > 0) && (i < SuperTank.canvas.maxBullet)) {                    bulletCnt = bulletCount;                    bulletNo = i;                    SuperTank.canvas.fireBullet(bulletNo, direction, posX, posY, 3);                }            }        }		if ( bulletCnt > 0 )			bulletCnt --;        grassPaint = false;        if (ismapCollide())			direction = tankAI();		g.setColor(0x0);        //add by johnson to set the timer        if(ifTimer){            speed = 0;        }else{            speed = sp;        }		switch(direction & 0x0f) {	        case 1:		//left		        if ((posX > SuperTank.canvas.mapOffsetX) && !ismapCollide()){			        posX -= speed;		        	fillposX = posX + frameWidth;		        	fillposY = posY;		        	fillwidth = speed;		        	fillheigh = frameHeight;		        }		   		break;	        case 2:		//right		        if ((posX < (SuperTank.canvas.mapOffsetX+SuperTank.canvas.mapWidth - frameWidth)) && !ismapCollide()){			        posX += speed;		        	fillposX = posX - speed;		        	fillposY = posY;		        	fillwidth = speed;		        	fillheigh = frameHeight;		        }	            break;	        case 3:		//up		        if ((posY > SuperTank.canvas.mapOffsetY) && !ismapCollide()){			        posY -= speed;		        	fillposX = posX;		        	fillposY = posY + frameHeight;		        	fillwidth = frameWidth;		        	fillheigh = speed;		        }    	        break;	        case 4:		//down		        if ((posY<(SuperTank.canvas.mapOffsetY+SuperTank.canvas.mapHeight - frameHeight)) && !ismapCollide()){			        posY += speed;		        	fillposX = posX;		        	fillposY = posY - speed;		        	fillwidth = frameWidth;		        	fillheigh = speed;		        }	        default:	            break;		}		g.fillRect(fillposX, fillposY, fillwidth, fillheigh);//        DirectGraphics dg = DirectUtils.getDirectGraphics(g);        switch(direction & 0x0f) {            case 1:		//left//              dg.drawImage(drawEnemy, posX, posY, g.TOP|g.LEFT, DirectGraphics.ROTATE_90);              g.drawImage(enemyLeft, posX, posY, g.TOP|g.LEFT);                break;            case 2:		//right//              dg.drawImage(drawEnemy, posX, posY, g.TOP|g.LEFT, DirectGraphics.ROTATE_270);              g.drawImage(enemyRight, posX, posY, g.TOP|g.LEFT);                break;            case 3:		//up//              g.drawImage(drawEnemy, posX, posY, g.TOP|g.LEFT);              g.drawImage(enemyUp, posX, posY, g.TOP|g.LEFT);                break;            case 4:		//down//              dg.drawImage(drawEnemy, posX, posY, g.TOP|g.LEFT, DirectGraphics.ROTATE_180);

⌨️ 快捷键说明

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