www.pudn.com > 20063622273380188.rar > Battle.java
import java.util.Random;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.lcdui.game.TiledLayer;
class Battle
{
private Random rnd;
private Creature me,enemies[];
private ItemManager iMgr;
private Sprite meS,enemiesS[],all[];
private Image myImg,enemyImg,bg,tarImg;
private boolean isEnd,roundOff,fail;
private final int NormalS[]={0},HertS[]={0,4,5},AttackS[]={0,1,2,3},Attack=1,Ability=2,Menu=0;
private TiledLayer sbg;
private int select,state,target,exp,num,money;
private String string="";
private Order orders[];
private Round round;
Battle(Creature me,ItemManager iMgr)
{
rnd=new Random();
myImg=Resourse.readImage(Resourse.ATTACK);
tarImg=Resourse.readImage(Resourse.TARGET);
this.me=me;
this.iMgr=iMgr;
sbg=new TiledLayer(10,7,Resourse.readImage(Resourse.BATTLE),16,16);
for(int i=0;i<5;i++)
{
sbg.setCell(i*2,0,4);
sbg.setCell(i*2,1,2);
sbg.setCell(i*2,2,5);
sbg.setCell(i*2,3,8);
sbg.setCell(i*2,4,1);
sbg.setCell(i*2,5,1);
sbg.setCell(i*2,6,1);
sbg.setCell(i*2+1,0,7);
sbg.setCell(i*2+1,1,3);
sbg.setCell(i*2+1,2,6);
sbg.setCell(i*2+1,3,9);
sbg.setCell(i*2+1,4,1);
sbg.setCell(i*2+1,5,1);
sbg.setCell(i*2+1,6,1);
}
}
void init(int mapId)
{
isEnd=false;
num=Math.abs(rnd.nextInt()%4)+1;
enemies=new Creature[num];
enemiesS=new Sprite[num];
for(int i=0;i=enemies.length-1?0:target+1);
}
}
void left()
{
}
void right()
{
}
void select()
{
if(roundOff)
{
if(state==Menu)
{
if(select==0)
state=Attack;
else if(select==1)
state=Ability;
else if(select==2)
isEnd=true;
}
else if(state==Attack)
{
orders[0]=new Order(me,enemies[target],meS,enemiesS[target],true);
for(int i=0;i=b.miss)
return true;
else
{
if(Math.abs(rnd.nextInt()%b.miss)=1?orders[order].a.attack*2-orders[order].b.defence:1);
string=orders[order].b.name+"受到了会心一击.";
}
else
{
threat=(orders[order].a.attack*percent/10-orders[order].b.defence>=1?orders[order].a.attack*percent/10-orders[order].b.defence:1);
string=orders[order].b.name+"受到了"+threat+"点的伤害.";
}
sleep(100);
orders[order].sb.nextFrame();
orders[order].sb.move(3,0);
sleep(100);
orders[order].sb.nextFrame();
orders[order].sb.move(-6,0);
sleep(100);
orders[order].sb.nextFrame();
orders[order].sb.move(3,0);
sleep(700);
}
else
{
string=orders[order].b.name+"成功的躲闪了攻击.";
sleep(1000);
threat=0;
}
orders[order].sb.setFrameSequence(NormalS);
orders[order].b.hp-=threat;
if(orders[order].b.hp<=0)
{
string=orders[order].b.name+"被打倒了.";
sleep(1000);
exp+=orders[order].b.exp;
money+=orders[order].b.money;
orders[order].b.dead=true;
if(!orders[order].isMe)
{
string="请再好好努力吧.";
sleep(1000);
fail=true;
isEnd=true;
order=orders.length;
}
}
}
int e=0;
for(int i=0;i=enemies.length)
{
string="战斗胜利.";
sleep(1000);
string=orders[order].a.name+"获得了"+exp+"点经验值.";
sleep(1000);
string=orders[order].a.name+"获得了"+money+"元金钱.";
orders[order].a.exp+=exp;
iMgr.add(new Item(money+100));
sleep(1000);
if(orders[order].a.exp>=orders[order].a.nextExp)
{
orders[order].a.levelup(orders[order].a.level+1);
string=orders[order].a.name+"升级了.";
sleep(1000);
}
isEnd=true;
order=orders.length;
}
string="";
sleep(100);
order++;
}
roundOff=true;
state=Menu;
for(int i=0;i