import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.util.Random;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.rms.*;
/*
* 创建日期 2005-9-5
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
/**
* @author 莫紫东
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
public class SFCanvas extends GameCanvas implements Runnable {
/**
*
*/
private final int LISTENER_LEFT=4;//键盘对应编号
private final int LISTENER_RIGHT=32;
private final int LISTENER_UP=2;
private final int LISTENER_DOWN=64;
private int setX=180-getWidth()/2+20,setY=180-getHeight()/2+20,heroWidth,heroHeight,mapdir=0,itempage=1,itemchoice=1;
static int keyState,nowShopcho=0,buynum=0;
private boolean isCho1=true,isData1=false,isData2=false,isOpenItem=false,isGetpress,isDelpress=false,isDelok=false,isChkdel=false,isOpenshop=false,isOpenintro=false,isFirst=false,isOut=false;
private boolean isBreak=false,isOpenmisn=false;
private Random randdead=new Random();
String dataname="crazy4";//记录名称
private int menuselc=1,menudisp=0;
private Graphics g;
//int m=0,l=0,temp;
//ASprite tempMonster;
//private int app[];
private byte heroData[];
private int itemprice[]={30,100,500,1000,3000};//物品价格,依次是药品,一,二,三,四等级装备
public RecordStore rs;
public int myid=-1,itemcho=1;
public static Image hImage,mapImage,monsterImage,bfImage,bloodImage,hpImage,hplImage,loadImage ,loadImage2,itemImage,goldImage,gearImage,houseImagetop,houseImagebottom,npcImage,npcImage1;
public static Image shopImage,menuImage,barImage,bgImage,missionImage;
private int jqcount=0,marktime=0;
//Sprite blueFire;
//private int bluefire[]={0,1,2,3};
final int GAME_MENU=-1;
final int GAME_TITLE=0;
final int GAME_ING=1;
final int GAME_JQ=2;
final int GAME_OVER=3;
public int herolv=-1,heroitem=-1,herogold=-1,heroitemlv=-1,heroexp=-1;
public static String heroMyItem,DataName=null;
public char tempitem;
public Thread thread;
//MonsterSprite ms2[];
int DEFAULT_HP=100,DEFAULT_LV=1,GAME_STATE=GAME_MENU;
HeroSprite heroSprite;
MapTiled mapTiled;
MonsterSprite monsterSprite,monsterSprite1,monsterSprite2,monsterSprite3,monsterSprite4,monsterSprite5,monsterSprite6,monsterSprite7,monsterSprite8,monsterSprite9,monsterSprite10;
NPCSprite npcSprite,npcSprite1;
LayerManager layManager;
ASprite tempMonster;
//ASprite ms1[],ms2[],tempms0[]={npcSprite,npcSprite1,heroSprite};
//记录的初始化
public void doHeroInit(){
heroSprite.lv=1;
heroSprite.itemlv=0;
heroSprite.gold=0;
heroSprite.MyItem="000000000000";
heroSprite.exp=210;
}
//地图切换的相应方法
public void gotoMap(int mapDir){
if(mapDir==0){
monsterSprite=null;
monsterSprite1=null;
monsterSprite2=null;
monsterSprite3=null;
monsterSprite4=null;
monsterSprite5=null;
monsterSprite6=null;
monsterSprite7=null;
monsterSprite8=null;
monsterSprite9=null;
monsterSprite10=null;
monsterImage=null;
layManager.remove(mapTiled);
mapImage=null;//将其他地图用到的图形清除
mapTiled=null;
heroSprite.isWalkable=null;
try{//描绘新地图
mapImage=Image.createImage("/map2.png");
houseImagetop=Image.createImage("/house_01.png");
houseImagebottom=Image.createImage("/house_02.png");
shopImage=Image.createImage("/shop.png");
npcImage=Image.createImage("/npc.png");
npcImage1=Image.createImage("/npc1.png");
}catch(Exception e){}
mapTiled=new MapTiled(30,30,mapImage,16,16,getWidth(),getHeight());
mapTiled.drawMap(mapDir,setX,setY);
heroSprite.chgMapbool(mapTiled.isWalkable0);
layManager.append(mapTiled);
npcSprite=new NPCSprite(npcImage1,25,32,1,86,161);
npcSprite1=new NPCSprite(npcImage,15,35,2,328,288);
heroSprite.mapdir=0;
}else{
layManager.remove(mapTiled);
mapImage=null;
mapTiled=null;
houseImagetop=null;
houseImagebottom=null;
heroSprite.isWalkable=null;
npcSprite=null;
npcSprite1=null;
shopImage=null;
try{
mapImage=Image.createImage("/title.png");
monsterImage=Image.createImage("/monster.png");
}catch(Exception e){}
mapTiled=new MapTiled(40,40,mapImage,16,16,getWidth(),getHeight());
mapTiled.drawMap(mapDir,setX,setY);
heroSprite.chgMapbool(mapTiled.isWalkable);
layManager.append(mapTiled);
monsterSprite=new MonsterSprite(monsterImage,50,50,90,90,false,2);//怪物的实例化
monsterSprite1=new MonsterSprite(monsterImage,50,50,140,140,false,1);
monsterSprite2=new MonsterSprite(monsterImage,50,50,120,120,false,3);
monsterSprite3=new MonsterSprite(monsterImage,50,50,300,110,false,5);
monsterSprite4=new MonsterSprite(monsterImage,50,50,300,160,false,4);
monsterSprite5=new MonsterSprite(monsterImage,50,50,300,200,false,5);
monsterSprite6=new MonsterSprite(monsterImage,50,50,400,50,false,7);
monsterSprite7=new MonsterSprite(monsterImage,50,50,400,110,false,7);
monsterSprite8=new MonsterSprite(monsterImage,50,50,400,500,false,8);
monsterSprite9=new MonsterSprite(monsterImage,50,50,460,500,false,9);
monsterSprite10=new MonsterSprite(monsterImage,50,50,420,550,false,12);
heroSprite.mapdir=1;
//ms1=null;
//ms1=tempms1;
}
}
public SFCanvas() {
super(true);
//super.setFullScreenMode(true);
System.out.print("构造函数开始运行");
try{//获取前期所需的
hImage=Image.createImage("/mainch.png");
mapImage=Image.createImage("/map2.png");
houseImagetop=Image.createImage("/house_01.png");
houseImagebottom=Image.createImage("/house_02.png");
npcImage=Image.createImage("/npc.png");
npcImage1=Image.createImage("/npc1.png");
//bfImage=Image.createImage("/bluefire.png");
bloodImage=Image.createImage("/blood.png");
hpImage=Image.createImage("/blood.png");
hplImage=Image.createImage("/bloodti.png");
loadImage=Image.createImage("/load1.png");
loadImage2=Image.createImage("/load2.png");
itemImage=Image.createImage("/box.png");
goldImage=Image.createImage("/gold.png");
gearImage=Image.createImage("/item.png");
shopImage=Image.createImage("/shop.png");
menuImage=Image.createImage("/menu.png");
barImage=Image.createImage("/bar.png");
bgImage=Image.createImage("/1212.png");
missionImage=Image.createImage("/menumain.png");
}catch(Exception e){
}
//blueFire=new Sprite(bfImage,30,30);
//blueFire.setFrameSequence(bluefire);
//实例化以及初始化
mapTiled=new MapTiled(30,30,mapImage,16,16,getWidth(),getHeight());
heroSprite=new HeroSprite(hImage,40,40);
heroWidth=heroSprite.getWidth()/2;
heroHeight=heroSprite.getHeight()/2;
heroSprite.chgMapbool(mapTiled.isWalkable0);
/*monsterSprite=new MonsterSprite(monsterImage,30,30,90,90,false,2);
monsterSprite1=new MonsterSprite(monsterImage,30,30,100,100,false,1);
monsterSprite2=new MonsterSprite(monsterImage,30,30,110,110,false,3);*/
npcSprite=new NPCSprite(npcImage1,25,32,1,86,161);
npcSprite1=new NPCSprite(npcImage,15,35,2,328,288);
heroSprite.isAlive=true;
mapTiled.drawMap(0,setX,setY);
g=this.getGraphics();
layManager=new LayerManager();
layManager.append(mapTiled);
//layManager.append(monsterSprite);
//layManager.append(monsterSprite1);
//layManager.append(monsterSprite2);
//ms1=null;
//ms1=tempms0;
//System.out.println("asdjfadlfkjladjslk"+ms1.length);
thread=new Thread(this);
System.out.print("构造函数运行完毕");
thread.start();
// TODO 自动生成构造函数存根
}
//将怪物类的死亡后的等级以及各方面信息传递到英雄类
private void doMonster(MonsterSprite mSprite,HeroSprite heroSprite,RecordStore rs,int rid){
heroSprite.doMonster(mSpr
评论0
最新资源