📄 sfcanvas.java
字号:
}else if(item[itemcho-1+(pagee-1)*3]=='5'){
heroSprite.hp=heroSprite.maxhp;
item[itemcho-1+(pagee-1)*3]='0';
}
}else{
if(isChkdel==true){
item[itemcho-1+(pagee-1)*3]='0';
}else{
isDelpress=false;
}
}
try{
rs.setRecord(myid,heroSprite.chgTorms(false),0,heroSprite.chgTorms(false).length);
}catch(Exception e){System.out.println(e);}
}
for(int h=0;h<3;h++){
switch(item[h+(pagee-1)*3]){
case '0':
g.drawString("无装备物品",50,105+h*15,Graphics.TOP|Graphics.LEFT);
break;
case '1':
g.drawString("第一等级装备",50,105+h*15,Graphics.TOP|Graphics.LEFT);
break;
case '2':
g.drawString("第二等级装备",50,105+h*15,Graphics.TOP|Graphics.LEFT);
break;
case '3':
g.drawString("第三等级装备",50,105+h*15,Graphics.TOP|Graphics.LEFT);
break;
case '4':
g.drawString("第四等级装备",50,105+h*15,Graphics.TOP|Graphics.LEFT);
break;
case '5':
g.drawString("补血药瓶",50,105+h*15,Graphics.TOP|Graphics.LEFT);
break;
}
}
}
//对记录中的数据进行转化
public static void chgTogame(byte[] data,HeroSprite heroSprite) throws IOException{
ByteArrayInputStream bais=new ByteArrayInputStream(data);
DataInputStream dis=new DataInputStream(bais);
heroSprite.lv=Integer.parseInt(dis.readUTF());
heroSprite.itemlv=Integer.parseInt(dis.readUTF());
heroSprite.gold=Integer.parseInt(dis.readUTF());
heroSprite.MyItem=dis.readUTF();
heroSprite.exp=Integer.parseInt(dis.readUTF());
heroSprite.at=(heroSprite.lv-1)*8+30;
heroSprite.df=(heroSprite.lv-1)*10+20;
System.out.println(heroSprite.MyItem);
heroSprite.itemcode=heroSprite.MyItem.toCharArray();
heroSprite.numEmpty=0;
//heroSprite.nextexp=heroSprite.lv*(heroSprite.lv-5)*(heroSprite.lv-5)-40*(heroSprite.lv-4)*(heroSprite.lv-4)+50*(heroSprite.lv+1)*(heroSprite.lv-4)*(heroSprite.lv-4)-40*(heroSprite.lv-3)*(heroSprite.lv-3)+300;
for(int i=0;i<heroSprite.itemcode.length;i++){
if(heroSprite.itemcode[i]=='0'){
heroSprite.numEmpty++;
}
}
}
protected void keyPressed(int keyCode){
if(GAME_STATE==GAME_ING){
switch(keyCode){
case KEY_STAR:
if(isOpenItem==true){
isOpenItem=false;
heroSprite.isPause=false;
}else{
isOpenItem=true;
heroSprite.isPause=true;
}
break;
case KEY_POUND:
isGetpress=true;
break;
case KEY_NUM0:
if(isOpenItem==true){
if(isDelpress==true){
isDelpress=false;
}else{
isDelpress=true;
isChkdel=false;
}
}
break;
case -21://E398
case 21://左软键 V500
if(isOpenshop==true){
isOpenshop=false;
heroSprite.isPause=false;
}
if(isOpenItem==true){
isOpenItem=false;
heroSprite.isPause=false;
}
break;
}
}
}
public void run(){
try{//尝试获得记录
rs=RecordStore.openRecordStore(dataname,false); //如果不成功则不创建
try{//成功后则尝试获取记录
heroData=rs.getRecord(1);
chgTogame(heroData,heroSprite);//将记录转化为实际数据
isData1=true;
}catch(Exception e){System.out.println("没有获得记录"+e);}
}catch(RecordStoreNotFoundException e){//如果没有成功获得
try{//关闭记录
System.out.println("没找到记录");
rs.closeRecordStore();
rs=null;
isData1=false;
}catch(Exception ex){
}
}catch(Exception e){}
//heroSprite.chgMapbool(mapTiled.isWalkable0);
while(true){
switch(GAME_STATE){
case GAME_MENU://选择菜单时
keyState=getKeyStates();
try{
Thread.sleep(100);
}catch(InterruptedException e){
e.printStackTrace();
}
g.setColor(0x00000000);
g.fillRect(0,0,getWidth(),getHeight());
g.drawImage(menuImage,30,0,Graphics.TOP|Graphics.LEFT);
if(menudisp==0){
if(keyState==LISTENER_UP && menuselc>1){
menuselc--;
}
if(keyState==LISTENER_DOWN && menuselc<3){
menuselc++;
}
switch(menuselc){
case 1:
g.drawImage(barImage,42,100,Graphics.TOP|Graphics.LEFT);
break;
case 2:
g.drawImage(barImage,42,120,Graphics.TOP|Graphics.LEFT);
break;
case 3:
g.drawImage(barImage,42,140,Graphics.TOP|Graphics.LEFT);
break;
}
}
g.setColor(0x00B7B46F);
switch(menudisp){
case 0:
g.drawString("开始游戏",65,100,Graphics.TOP|Graphics.LEFT);
g.drawString("游戏说明",65,120,Graphics.TOP|Graphics.LEFT);
g.drawString("制作小组",65,140,Graphics.TOP|Graphics.LEFT);
break;
case 1:
g.drawString("本版本为非最终确定版,方向键",15,100,Graphics.TOP|Graphics.LEFT);
g.drawString("控制方向,SELECT键控制动作,",15,110,Graphics.TOP|Graphics.LEFT);
g.drawString("*键控制基本人物属性框的开关",15,120,Graphics.TOP|Graphics.LEFT);
g.drawString("#键控制物品拾取,NUM0键控制",15,130,Graphics.TOP|Graphics.LEFT);
g.drawString("物品的删除,左软键控制窗口的",15,140,Graphics.TOP|Graphics.LEFT);
g.drawString("关闭",15,150,Graphics.TOP|Graphics.LEFT);
break;
case 2:
g.drawString("单机版程序员:莫紫东",25,100,Graphics.TOP|Graphics.LEFT);
g.drawString("游 戏 企 划:周琳娟",25,110,Graphics.TOP|Graphics.LEFT);
g.drawString("美 工:崔永志",25,120,Graphics.TOP|Graphics.LEFT);
g.drawString(" 莫紫东",25,130,Graphics.TOP|Graphics.LEFT);
g.drawString("网络版服务端:文 鹏",25,140,Graphics.TOP|Graphics.LEFT);
g.drawString("网络版客户端:莫紫东",25,150,Graphics.TOP|Graphics.LEFT);
break;
}
if(keyState==256){
switch(menuselc){
case 1:
menuImage=null;
GAME_STATE=GAME_JQ;
break;
case 2:
if(menudisp==0){
menudisp=1;
}else{
menudisp=0;
}
break;
case 3:
if(menudisp==0){
menudisp=2;
}else{
menudisp=0;
}
break;
}
}
flushGraphics();
break;
case GAME_JQ:
keyState=getKeyStates();
try{
Thread.sleep(150);
}catch(InterruptedException e){
e.printStackTrace();
}
g.setColor(0x00000000);
g.fillRect(0,0,getWidth(),getHeight());
g.drawImage(bgImage,-10,-10,Graphics.TOP|Graphics.LEFT);
g.setColor(0x00FFFFFF);
if(isBreak==false){
g.drawString("这是一个与世隔绝的国家——桫坨",10,getHeight()-2*jqcount,Graphics.TOP|Graphics.LEFT);
g.drawString("罗国。人民过着富足祥合的生活。",0,getHeight()+15-2*jqcount,Graphics.TOP|Graphics.LEFT);
g.drawString("直到有一天一匹跛狼缓缓的从荒原",0,getHeight()+30-2*jqcount,Graphics.TOP|Graphics.LEFT);
g.drawString("走来,拖着带血的残腿,恐惧的眼",0,getHeight()+45-2*jqcount,Graphics.TOP|Graphics.LEFT);
g.drawString("神让它看起来毫无以往的凶猛威风",0,getHeight()+60-2*jqcount,Graphics.TOP|Graphics.LEFT);
g.drawString("数天后,兽族的人扯着漫天猩红的",10,getHeight()+75-2*jqcount,Graphics.TOP|Graphics.LEFT);
g.drawString("大旗,杀了过来。所过之处,哀鸿",0,getHeight()+90-2*jqcount,Graphics.TOP|Graphics.LEFT);
g.drawString("遍野、了无人烟。桫坨罗国的人民",0,getHeight()+105-2*jqcount,Graphics.TOP|Graphics.LEFT);
g.drawString("在这一灭顶之灾面前,到底会怎么",0,getHeight()+120-2*jqcount,Graphics.TOP|Graphics.LEFT);
g.drawString("反抗?还是在冥冥之中,等待着一",0,getHeight()+135-2*jqcount,Graphics.TOP|Graphics.LEFT);
g.drawString("英雄的降临……",0,getHeight()+150-2*jqcount,Graphics.TOP|Graphics.LEFT);
}
if(keyState==256){
isBreak=true;
}
if(jqcount<177){
jqcount++;
}else{
isBreak=true;
}
if(isBreak==true){
bgImage=null;
GAME_STATE=GAME_TITLE;
}
flushGraphics();
break;
case GAME_TITLE:
keyState=getKeyStates();
try{
Thread.sleep(100);
}catch(InterruptedException e){
e.printStackTrace();
}
g.setColor(0,0,0);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(255,255,255);
g.drawString("请选择要进行的进度:",20,20,Graphics.TOP|Graphics.LEFT);
if(isCho1){
g.drawImage(loadImage,160,40,Graphics.TOP|Graphics.RIGHT);
g.drawImage(loadImage2,160,90,Graphics.TOP|Graphics.RIGHT);
g.setColor(0x00FFFFFF);
if(isData1){
g.drawString(String.valueOf(heroSprite.lv),100,50,Graphics.TOP|Graphics.LEFT);
}else{
g.drawString("尚未创建进度",50,60,Graphics.TOP|Graphics.LEFT);
}
}else{
g.drawImage(loadImage2,160,40,Graphics.TOP|Graphics.RIGHT);
g.drawImage(loadImage,160,90,Graphics.TOP|Graphics.RIGHT);
g.setColor(0x00FFFFFF);
if(isData2){
g.drawString(String.valueOf(heroSprite.lv),100,100,Graphics.TOP|Graphics.LEFT);
}else{
g.drawString("尚未创建进度",50,115,Graphics.TOP|Graphics.LEFT);
}
}
switch(keyState){
case 2:
try{
rs=RecordStore.openRecordStore(dataname,false);
myid=1;
try{
heroData=rs.getRecord(1);
chgTogame(heroData,heroSprite);
System.out.println(heroSprite.lv);
isData1=true;
}catch(Exception e){System.out.println("没有获得记录"+e);}
}catch(RecordStoreNotFoundException e){
try{
System.out.println("没找到记录");
rs.closeRecordStore();
rs=null;
isData1=false;
}catch(Exception ex){
}
}catch(Exception e){}
isCho1=true;
break;
case 64:
try{
rs=RecordStore.openRecordStore(dataname,false);
myid=2;
try{
heroData=rs.getRecord(2);
chgTogame(heroData,heroSprite);
System.out.println(heroSprite.lv);
isData2=true;
}catch(Exception e){System.out.println("没有获得记录"+e);}
}catch(RecordStoreNotFoundException e){
try{
System.out.println("没找到记录");
rs.closeRecordStore();
rs=null;
isData2=false;
}catch(Exception ex){
}
}catch(Exception e){}
isCho1=false;
break;
case 256:
if(isCho1){
if(isData1){
myid=1;
GAME_STATE=GAME_ING;
}else{
try{
rs=RecordStore.openRecordStore(dataname,true);
doHeroInit();
isFirst=true;
myid=rs.addRecord(heroSprite.chgTorms(isFirst),0,heroSprite.chgTorms(isFirst).length);
//heroData=rs.getRecord(myid);
//System.out.println(" "+myid+" "+heroData);
isFirst=false;
GAME_STATE=GAME_ING;
}catch(Exception e){System.out.println("这里的问题挖?"+e);}
}
}else{
if(isData2){
myid=2;
GAME_STATE=GAME_ING;
}else{
try{
rs=RecordStore.openRecordStore(dataname,true);
doHeroInit();
isFirst=true;
myid=rs.addRecord(heroSprite.chgTorms(isFirst),0,heroSprite.chgTorms(isFirst).length);
isFirst=false;
System.out.println(" "+myid+" "+heroData);
GAME_STATE=GAME_ING;
}catch(Exception e){}
}
}
break;
}
flushGraphics();
break;
case GAME_ING:
//System.out.println(" "+myid);
//System.out.println("运行了RUN函数");
heroSprite.nextexp=heroSprite.prevexp+50*(heroSprite.lv+1)*(heroSprite.lv-4)*(heroSprite.lv-4)-40*(heroSprite.lv-3)*(heroSprite.lv-3)+150;
keyState=getKeyStates();
mapTiled.drawMap(mapdir,setX,setY);
try{
Thread.sleep(50);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -