⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sfcanvas.java

📁 j2me RPG手机游戏《征途》的源代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
			}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 + -