?? player.java
字號:
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 + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -