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

📄 enemy.java

📁 本j2me坦克游戏是在Nokia平台下开发的
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
              g.drawImage(enemyDown, posX, posY, g.TOP|g.LEFT);            default:                break;        }        if(grassPaint){            SuperTank.canvas.grassPaint = true;            //    SuperTank.canvas.reDraw(3,g);        }    }    boolean ismapCollide() {    	boolean collFlag = false;    	int collX, collY;    	int i;    	int tileW = SuperTank.canvas.tileW;		collX = posX-SuperTank.canvas.mapOffsetX;		collY = posY-SuperTank.canvas.mapOffsetY;		switch(direction & 0x0f) {	        case 1:		//left	        	collX = collX - speed;		        if ( collX <= 0 )		        	collFlag = true;		        else {		        	collFlag = false;		        	for ( i = (collY/tileW * (SuperTank.canvas.mapWidth/tileW) + collX/tileW); i <= ((collY + frameHeight)/tileW * (SuperTank.canvas.mapWidth/tileW) + collX/tileW); i += (SuperTank.canvas.mapWidth/tileW) ){                        if (SuperTank.canvas.mapInfo[i] == 3) {                            grassPaint = true;                        }                        if ( SuperTank.canvas.mapInfo[i] != 0 && SuperTank.canvas.mapInfo[i] != 3){			        		collFlag = true;			        		break;			        	}			        }	        	}            break;	        case 2:		//right	        	collX = collX + frameWidth + speed;		        if (collX >= SuperTank.canvas.mapWidth)			        collFlag = true;			    else {		        	collFlag = false;		        	for ( i = (collY/tileW * (SuperTank.canvas.mapWidth/tileW) + collX/tileW); i <= ((collY + frameHeight)/tileW * (SuperTank.canvas.mapWidth/tileW) + collX/tileW); i += (SuperTank.canvas.mapWidth/tileW) ){                        if (SuperTank.canvas.mapInfo[i] == 3) {                            grassPaint = true;                        }                        if ( SuperTank.canvas.mapInfo[i] != 0 && SuperTank.canvas.mapInfo[i] != 3){			        		collFlag = true;			        		break;			        	}			        }	        	}            break;	        case 3:		//up	        	collY = collY - speed;		        if (collY <= 0)		        	collFlag = true;		        else {		        	collFlag = false;		        	for ( i = (collY/tileW * (SuperTank.canvas.mapWidth/tileW) + collX/tileW); i <= (collY/tileW * (SuperTank.canvas.mapWidth/tileW) + (collX + frameWidth)/tileW); i ++ ){                        if (SuperTank.canvas.mapInfo[i] == 3) {                            grassPaint = true;                        }                        if ( SuperTank.canvas.mapInfo[i] != 0 && SuperTank.canvas.mapInfo[i] != 3){			        		collFlag = true;			        		break;			        	}			        }	        	}            break;	        case 4:		//down	        	collY = collY + frameHeight + speed;		        if (collY >= SuperTank.canvas.mapHeight)			        collFlag = true;			    else {		        	collFlag = false;		        	for ( i = (collY/tileW * (SuperTank.canvas.mapWidth/tileW) + collX/tileW); i <= (collY/tileW * (SuperTank.canvas.mapWidth/tileW) + (collX + frameWidth)/tileW); i ++ ){                        if (SuperTank.canvas.mapInfo[i] == 3) {                            grassPaint = true;                        }                        if ( SuperTank.canvas.mapInfo[i] != 0 && SuperTank.canvas.mapInfo[i] != 3){			        		collFlag = true;			        		break;			        	}			        }	        	}	        	break;	        default:	            break;		}    	return collFlag;    }    boolean isobjCollide( int objX, int objY ) {    	boolean collFlag = false;    	int collX, collY;    	int i;		collX = posX;		collY = posY;		switch(direction & 0x0f) {	        case 1:		//left	        	collX = collX - speed;        	    break;	        case 2:		//right	        	collX = collX + speed;    	        break;	        case 3:		//up	        	collY = collY - speed;	            break;	        case 4:		//down	        	collY = collY + speed;	        default:	            break;		}		if ( collX < (objX + frameWidth) && (collX + frameWidth) > objX &&				collY < (objY + frameHeight) && (collY + frameHeight) > objY )			collFlag = true;    	return collFlag;    }	int tankAI() {        int direction_bak;        direction_bak = direction;        if (kind == 3) {            if ( (direction & 0x0f) == 4 | (direction & 0x0f) == 3) {                if ( (direction_bak & 0x0f) == 3) {                    //check up                    direction = 4;                    if (!ismapCollide())                        return direction | 0x10;                }                if ( (myrandom.nextInt() & 1) == 0) {                    //check left                    direction = 1;                    if (!ismapCollide())                        return direction | 0x10;                    //check right                    direction = 2;                    if (!ismapCollide())                        return direction | 0x10;                }                else {                    //check right                    direction = 2;                    if (!ismapCollide())                        return direction | 0x10;                    //check left                    direction = 1;                    if (!ismapCollide())                        return direction | 0x10;                }                if ( (direction_bak & 0x0f) == 3) {                    //check up                    direction = 4;                    if (!ismapCollide())                        return direction | 0x10;                }                else {                    //check down                    direction = 3;                    if (!ismapCollide())                        return direction | 0x10;                }            }            if ( (direction & 0x0f) == 2 | (direction & 0x0f) == 1) {                if ( (myrandom.nextInt() & 1) == 0) {                    //check up                    direction = 4;                    if (!ismapCollide())                        return direction | 0x10;                    //check down                    direction = 3;                    if (!ismapCollide())                        return direction | 0x10;                }                else {                    //check down                    direction = 3;                    if (!ismapCollide())                        return direction | 0x10;                    //check up                    direction = 4;                    if (!ismapCollide())                        return direction | 0x10;                }                if ( (direction_bak & 0x0f) == 1) {                    //check left                    direction = 2;                    if (!ismapCollide())                        return direction | 0x10;                }                else {                    //check right                    direction = 1;                    if (!ismapCollide())                        return direction | 0x10;                }            }        }        else {            if ( (direction & 0x0f) == 4 | (direction & 0x0f) == 3) {                if ( (myrandom.nextInt() & 1) == 0) {                    //check left                    direction = 1;                    if (!ismapCollide())                        return direction | 0x10;                    //check right                    direction = 2;                    if (!ismapCollide())                        return direction | 0x10;                }                else {                    //check right                    direction = 2;                    if (!ismapCollide())                        return direction | 0x10;                    //check left                    direction = 1;                    if (!ismapCollide())                        return direction | 0x10;                }                if ( (direction_bak & 0x0f) == 3) {                    //check up                    direction = 4;                    if (!ismapCollide())                        return direction | 0x10;                }                else {                    //check down                    direction = 3;                    if (!ismapCollide())                        return direction | 0x10;                }            }            if ( (direction & 0x0f) == 2 | (direction & 0x0f) == 1) {                if ( (myrandom.nextInt() & 1) == 0) {                    //check up                    direction = 4;                    if (!ismapCollide())                        return direction | 0x10;                    //check down                    direction = 3;                    if (!ismapCollide())                        return direction | 0x10;                }                else {                    //check down                    direction = 3;                    if (!ismapCollide())                        return direction | 0x10;                    //check up                    direction = 4;                    if (!ismapCollide())                        return direction | 0x10;                }                if ( (direction_bak & 0x0f) == 1) {                    //check left                    direction = 2;                    if (!ismapCollide())                        return direction | 0x10;                }                else {                    //check right                    direction = 1;                    if (!ismapCollide())                        return direction | 0x10;                }            }        }            return direction_bak;        }}

⌨️ 快捷键说明

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