player.java

来自「手机射击游戏源代码,nokia s60模拟器开发包,eclipse工具开发.不可」· Java 代码 · 共 330 行

JAVA
330
字号
package src;

//import java.io.IOException;
import javax.microedition.lcdui.*;

public class Player extends Character {
	protected boolean isAlive = true;

	protected boolean isHit = false;

	boolean isMove = false;

	boolean isjump = false;

	int playerDirect = DIRECTION_RIGHT;

	int playerState = 0;

	//right桢数
	int stand_right[] = { 0, 0, 0,  1, 1, 1 }; //向右站立

	int fire_right[] = { 2, 2, 3, 3 }; //向右开火

	int up_right[] = { 5 }; //枪向上

	int fire_up_right[] = { 6, 5 }; //右方向上开火

	int jump_right[] = { 10,11, 12};

	int crouch_right[] = { 15 }; //向右蹲

	int run_right[] = { 17,  18,  19,  20 }; //向右跑

//	int death_right[] = { 0,0,1,1 }; //右方向死亡

	int crouch_fire_right[] = { 16 };

	int put_right[] = { 22, 22, 23, 23, 23 };
	
	//left桢数
	int stand_left[] = { 24, 24, 24,  25, 25, 25 };

	int fire_left[] = { 26, 26, 27, 27 };

	int up_left[] = { 29 };

	int fire_up_left[] = { 30, 29 };

	int jump_left[] = { 34,35, 36 };

	int crouch_left[] = { 39 };//??

	int run_left[] = { 41, 42, 43,  44 };

//	int death_left[] = { 2,2,3,3 };

	int crouch_fire_left[] = { 40 };

	int put_left[] = { 46, 46, 47, 47, 47 };

	int i = 0;

	int paoState = 1;

	int HPCount;

	public Player(int id, String name, Image image, int width, int height) {
		super(id, name, image, width, height);
		HPCount = 9;
		isAlive = true;
	}

	void setBulletPosion(Bullets bullet) {
		bullet.setBulletDirect(playerDirect);
		switch (playerDirect) {
		case DIRECTION_RIGHT:
			switch (playerState) {
			case 1: //fire
				bullet.setPosition(x + width - 10, y + height / 2 - 5);
				break;
			case 9://put bomb
				bullet.setPosition(x + width - 10, y);
				break;
			case 5:
				bullet.setPosition(x + width - 10, y + height / 2);
				break;
			case 3:
				bullet.setPosition(x + width - 10, y + height / 2);
				break;
			}
			break;
		case DIRECTION_LEFT:
			switch (playerState) {
			case 1:
				bullet.setPosition(x - 10, y + height / 2 - 5);
				break;
			case 9:
				bullet.setPosition(x - 10, y);
				break;
			case 5:
				bullet.setPosition(x - 10, y + height / 2);
				break;
			case 3:
				bullet.setPosition(x - 10, y + height / 2 - 5);
				break;
			}
			break;
		case DIRECTION_UP:
			switch (playerState) {
			case 10:
				bullet.setPosition(x, y - bullet.height);
				break;
			case 12:
				bullet.setPosition(x + width / 3 * 2, y - bullet.height);
				break;
			}
			break;
		case DIRECTION_RIGHT_DOWN:
			switch (playerState) {
			case 8:
				bullet.setPosition(x + width - 10, y + height / 4 * 3 - 5);
				break;
			}
			break;
		case DIRECTION_LEFT_DOWN:
			switch (playerState) {
			case 15:
				bullet.setPosition(x - 10, y + height / 4 * 3 - 5);
				break;
			}
			break;
		}
	}

	void attack(Sprite dest) {
	}

	protected void onCollision(Sprite obj) {
	}

	void destroy() {
	}

	void setHit(boolean isHit) {
		this.isHit = isHit;
	}

	boolean isHit() {
		return isHit;
	}

	public void setMove(boolean isMove) {
		this.isMove = isMove;
	}

	boolean isMove() {
		return isMove;
	}

	public void setIsjump(boolean isjump) {
		this.isjump = isjump;
	}

	public void Move() {
		if (isMove) {
			switch (playerDirect) {
			case Character.DIRECTION_LEFT:
				x -= 4;
				break;
			case Character.DIRECTION_RIGHT:
				x += 4;
				break;
			}
		}
	}
	
	public void setDirection(int direction) {
		playerDirect = direction;
	}

	public void setState(int State) {
		switch (playerDirect) {
		case DIRECTION_RIGHT:
			switch (State) {
			case 0: //0
				setFrameSequence(stand_right);
				break;
			case 1: //1
				setFrameSequence(fire_right);
				break;
			case 3: //3
				setFrameSequence(jump_right);
				break;
			case 5: //5
				setFrameSequence(run_right);
				break;
			case 9: //9
				setFrameSequence(put_right);
				break;
			default:
				break;
			}
			break;
		case DIRECTION_LEFT:
			switch (State) {
			case 0:
				setFrameSequence(stand_left);
				break;
			case 1:
				setFrameSequence(fire_left);
				break;
			case 3:
				setFrameSequence(jump_left);
				break;
			case 5:
				setFrameSequence(run_left);
				break;
			case 16: //16
				setFrameSequence(put_left);
				break;
			default:
				break;
			}
			break;
		case DIRECTION_UP:
			switch (State) {
			case 10: //10:
				setFrameSequence(fire_up_left);
				break;
			case 11: //11
				setFrameSequence(up_left);
				break;
			case 12: //12:
				setFrameSequence(fire_up_right);
				break;
			case 13: //13
				setFrameSequence(up_right);
				break;
			}
			break;
		case DIRECTION_RIGHT_DOWN:
			switch (State) {
			case 4: //4
				setFrameSequence(crouch_right);
				break;
			case 8: //8
				setFrameSequence(crouch_fire_right);
				break;
			case 9: //9
				setFrameSequence(put_right);
				break;
			}
			break;
		case DIRECTION_LEFT_DOWN:
			switch (State) {
			case 14: //14
				setFrameSequence(crouch_left);
				break;
			case 15: //15
				setFrameSequence(crouch_fire_left);
				break;
			case 16: //16
				setFrameSequence(put_left);
				break;
			}
			break;
		}

		playerState = State;
	}

	private int time(int mod) {
		paoState++;
		paoState = paoState % mod;
		return paoState;
	}

	boolean ispao;

	boolean right;

	public void doDraw(Graphics g) {
		switch (playerState) {
		case 0:
			break;
		case 1:
			if (time(4) == 0)
				setState(0);
			break;
		case 10:
			if (time(2) == 0)
				this.setState(11);
			break;
		case 12:
			if (time(2) == 0)
				this.setState(13);
			break;
		case 8:
			if (time(2) == 0)
				this.setState(4);
		case 9:
			if (time(5) == 0) {
				if (!ispao) {
					setState(0);
				} else {
					setState(5);
				}
				if (playerDirect == DIRECTION_RIGHT_DOWN) {
					setState(4);
				}
			}

			break;
		case 16:
			if (time(5) == 0) {
				if (!ispao) {
					setState(0);
				} else {
					setState(5);
				}
				if (this.playerDirect ==DIRECTION_LEFT_DOWN) {
					setState(14);
				}
			}
			break;
		}
		paint(g);
		nextFrame();
	}
}

⌨️ 快捷键说明

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