📄 monstersprite.java
字号:
import javax.microedition.lcdui.Image;
import java.util.Random;
import java.lang.Math;
/*
* 创建日期 2005-9-9
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
/**
* @author 莫紫东
* Download by http://www.codefans.net
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
public class MonsterSprite extends ASprite {
public int tan041=4142,tan241=24142,goldOritem;
public final int DIR_DOWN=1;
public final int DIR_LD=7;
public final int DIR_LEFT=2;
public final int DIR_LU=5;
public final int DIR_RD=8;
public final int DIR_RIGHT=4;
public final int DIR_RU=6;
public final int DIR_UP=3;
private int itemat[]={0,30,70,120,200};//英雄装备攻防数组公式
private int itemdf[]={0,20,60,110,190};
private int down[]={0};
private int down_seq[]={1,2,3,4};
public int downb_seq[]={5,6,7};
HeroSprite heroSprite;
private int heroX,heroY;
public boolean isAttach,isAlive,isBattle,isStop,isStopb,isWaiting,isGet=false,isgetPress=false;
private boolean isSmart;
private int ld[]={8};
private int ld_seq[]={9,10,11,12};
private int ldb_seq[]={13,14,15};
private int left[]={16};
private int left_seq[]={17,18,19,20};
public int leftb_seq[]={21,22,23};
private int lu[]={24};
private int lu_seq[]={25,26,27,28};
private int lub_seq[]={29,30,31};
private Random random=new Random();
private int rd[]={32};
private int rd_seq[]={33,34,35,36};
private int rdb_seq[]={37,38,39};
private int right[]={40};
private int right_seq[]={41,42,43,44};
public int rightb_seq[]={45,46,47};
private int ru[]={48};
private int ru_seq[]={49,50,51,52};
private int rub_seq[]={53,54,55};
private boolean[][] isWalkable={
{false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false},
{false,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,true,true,true,true,true,true,true,true,true,true,false},
{false,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,false,true,true,false,false,true,true,true,true,true,true,true,true,true,false,false},
{false,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,true,true,true,true,true,true,true,false,false,true,true,false,true,true,true,true,true,true,true,true,true,false,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,true,true,true,true,true,true,true,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,false,false,false,false,true,true,true,true,true,true,true,true,true,true,false,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,false,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,false,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false},
{false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false},
{false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false},
{false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false},
{false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false},
{false,false,false,false,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false},
{false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false},
{false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false},
{false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false},
{false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,false,false,false,false,true,true,true,true,false,false,true,true,true,true,true,true,true,true,false,false,false,false,false},
{false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,false,false,true,true,true,true,true,true,true,false,false,false,false,false,false},
{false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,false,false,false,false},
{false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,true,false,true,true,true,false,false,false,false,false,false},
{false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,false,false,false,false,false,false},
{false,false,false,false,false,false,false,false,false,false,false,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false},
{false,false,false,false,false,false,false,false,false,false,false,false,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false},
{false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false},
{false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false},
{false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false}
};
private int up[]={56};
private int up_seq[]={57,58,59,60};
public int upb_seq[]={61,62,63};
public int x,y,dir,maxHp,hp,lv,deadlv,at,df,centerX,centerY,centerDis,heroDis,tempX,tempY,i,j,k,moveDis,stopTime,heroDir,battleSpeed,heroHp,width,height;
public int luX,luY,ruX,ruY,ldX,ldY,rdX,rdY,heroAt,heroDf,heroLv,heroBd,mBd,heroMaxhp,goldforhero,redOritem;
public char itemc;
public MonsterSprite(Image monsterImage, int hei, int wid,int centerX,int centerY,boolean isSmart,int lv) {
super(monsterImage, hei, wid);
this.isAlive=true;
System.out.println("已经装载怪物类");
maxHp=100+60*(lv-1);//怪物血量和等级公式
hp=maxHp;
at=(lv-1)*8+40;
df=(lv-1)*8+22;//攻防和等级公式
j=0;
k=0;
deadlv=0;
isWaiting=false;
this.chgDir();
this.isSmart=isSmart;
this.centerX=centerX;
this.centerY=centerY;
this.x=centerX;
this.y=centerY;
this.lv=lv;
tempX=centerX;
tempY=centerY;
moveDis=3600;
stopTime=20;
isBattle=false;
battleSpeed=10;
width=this.getWidth()/2;
height=this.getHeight()/2;
System.out.println("怪物类装载完成");
// TODO 自动生成构造函数存根
}
private void chgDir(){
dir=Math.abs(random.nextInt()%8);
//System.out.println(x+","+y);
switch(dir+1){
case DIR_LEFT:
this.setFrameSequence(left_seq);
//x=x-5;
break;
case DIR_RIGHT:
this.setFrameSequence(right_seq);
//x=x+5;
break;
case DIR_UP:
this.setFrameSequence(up_seq);
//y=y-5;
break;
case DIR_DOWN:
this.setFrameSequence(down_seq);
//y=y+5;
break;
case DIR_LU:
this.setFrameSequence(lu_seq);
//x=x-3;
//y=y-3;
break;
case DIR_RU:
this.setFrameSequence(ru_seq);
//x=x+3;
//y=y-3;
break;
case DIR_LD:
this.setFrameSequence(ld_seq);
//x=x-3;
//y=y+3;
break;
case DIR_RD:
this.setFrameSequence(rd_seq);
//x=x+3;
//y=y+3;
break;
}
}
public int doMovedraw(int heroX,int heroY,int screenHeight,int screenWidth,int heroDir,boolean iisBattle,HeroSprite heroSprite,int heroHp,int herolv,int itemlv){
if(this.isAlive==true){
//g.setColor(0x00FF0107);
heroLv=herolv;
heroMaxhp=160+(herolv-1)*40;
heroAt=itemat[itemlv]+(herolv-1)*8+30;
heroDf=itemdf[itemlv]+(herolv-1)*10+20;//英雄等级与能力换算公式
heroBd=(at-heroDf/2)*8/10;//英雄被攻击一次所降低的血量公式
mBd=(heroAt-df/2)*13/10;//怪物被攻击一次所降低的血量公式
luX=(int)(x/16)+1;
luY=(int)(y/16);
ruX=(int)((x+30)/16)+1;
ruY=luY;
ldX=luX;
ldY=(int)((y+30)/16);
rdX=ldX;
rdY=ldY;
isWaiting=false;
this.heroX=heroX;
this.heroY=heroY;
this.heroHp=heroHp;
this.isAttach=iisBattle;
this.heroDir=heroDir;
this.heroSprite=heroSprite;
centerDis=(int)((tempX-x)*(tempX-x)+(tempY-y)*(tempY-y));
heroDis=(int)((heroX-x)*(heroX-x)+(heroY-y)*(heroY-y));
switch(dir+1){
case DIR_LEFT:
if(!isSmart){
if(centerDis<moveDis){
i=0;
if(isWalkable[ldX-1][ldY]){
this.x=this.x-4;
this.nextFrame();
}else{
dir=DIR_RIGHT-1;
this.setFrameSequence(right_seq);
}
}else{
this.setFrameSequence(left);
i++;
if(i==stopTime){
tempX=x;
tempY=y;
this.chgDir();
}
}
}else{
if(!this.collidesWith(heroSprite,true)){
if(isBattle==true){
isBattle=false;
this.setFrameSequence(left_seq);
}
if(isStop==true){
this.setFrameSequence(left_seq);
isStop=false;
}
if(isWalkable[ldX-1][ldY]){
x=x-4;
this.nextFrame();
}else{
isSmart=false;
dir=DIR_RIGHT-1;
this.setFrameSequence(right_seq);
}
}else{
isStop=true;
if(isBattle==false){
isBattle=true;
this.setFrameSequence(leftb_seq);
this.nextFrame();
}else{
if(j<stopTime-battleSpeed){
j++;
isStopb=true;
this.setFrameSequence(left);
}else{
if(isStopb==true){
isStopb=false;
this.setFrameSequence(leftb_seq);
}
if(this.getFrame()==2){
if(heroHp>0){
heroHp=heroHp-heroBd;
}
j=0;
}
this.nextFrame();
}
}
//this.nextFrame();
//this.setFrameSequence(left);
}
}
break;
case DIR_RIGHT:
if(!isSmart){
if(centerDis<moveDis){
i=0;
if(isWalkable[rdX+1][rdY]){
this.x=this.x+4;
this.nextFrame();
}else{
dir=DIR_LEFT-1;
this.setFrameSequence(left_seq);
}
}else{
this.setFrameSequence(right);
i++;
if(i==stopTime){
tempX=x;
tempY=y;
this.chgDir();
}
}
}else{
if(!this.collidesWith(heroSprite,true)){
if(isBattle==true){
isBattle=false;
this.setFrameSequence(right_seq);
}
if(isStop==true){
this.setFrameSequence(right_seq);
isStop=false;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -