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

📄 pcanvas.java

📁 商业游戏代码
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
						}else{
							server.send("-2");
						}
					}else if(isServer==2){
						if(data.equals(Integer.toString(-2))){
							loadimage();
							G_STATE = G_START;
							client.send("-3");
						}else{
							client.send("-2");
						}
					}else{
  					loadimage();
  					G_STATE = G_START;
					}
//#else
//  					loadimage();
//  					G_STATE = G_START;
//#endif
				}
				break;
			case LEFT:
			case KEY_NUM4:
				count--;
				if(count<0)
					count=1;
				break;
			case RIGHT:
			case KEY_NUM6:
				count++;
				if(count>1)
					count=0;
				break;
			case SOFTKEY2:
				if (islist()) {
					myname = new StringBuffer();
					G_STATE = G_END;
					count = 12;
					loadcount = 0;
				}else{
					count=0;
					loadcount=0;
					init();//初始化顺序
					G_STATE=G_MENU;
				}
				break;
			case SOFTKEY1:
//#ifdef _BT
				if(isServer==1){
					if(data.equals(Integer.toString(-2))){
						loadimage();
						G_STATE = G_START;
						server.send("-3");
					}else{
						server.send("-2");
					}
				}else if(isServer==2){
					if(data.equals(Integer.toString(-2))){
						loadimage();
						G_STATE = G_START;
						client.send("-3");
					}else{
						client.send("-2");
					}
				}else{
  					loadimage();
  					G_STATE = G_START;
					}
//#else
//  				loadimage();
//  				G_STATE = G_START;
//#endif
				break;
			}
			break;
		case G_END:
			switch (keyCode) {
			case FIRE:
			case KEY_NUM5:
				if (myname.length() <= 10) {
					myname.append(text[count]);
				}
				break;
			case LEFT:
			case KEY_NUM4:
				count--;
				if (count <= 0) {
					count = 0;
				}
				break;
			case RIGHT:
			case KEY_NUM6:
				count++;
				if (count >= 25) {
					count = 25;
				}
				break;
			case SOFTKEY2:
				if(myname.length()>0){
					myname.deleteCharAt(myname.length()-1);
				}else{
					count=0;
					loadcount=0;
					init();//初始化顺序
					myname=null;
					G_STATE=G_MENU;
				}
				break;
			case SOFTKEY1:
				name[no] = myname.toString();
				saverms();
				init();//初始化顺序
				myname=null;
				G_STATE = G_TOP;
				break;
			}
			break;
		case G_OVER:
			if(keyCode==SOFTKEY1){
				if(count<(HEIGHT*7/16+100)){
					count=(HEIGHT*7/16+100);
				}else{
					if (islist()) {
						myname = new StringBuffer();
						count = 12;
						loadcount = 0;
						G_STATE = G_END;
					} else{
						count=0;
						loadcount=0;
						init();//初始化顺序
						G_STATE=G_MENU;
					}
				}
			}
			break;
		case G_LOST:
			if(keyCode==SOFTKEY1){
				if (islist()) {
					myname = new StringBuffer();
					count = 12;
					loadcount = 0;
					G_STATE = G_END;
				} else{
					count=0;
					loadcount=0;
					init();//初始化顺序
					G_STATE=G_MENU;
				}
			}
			break;
		case G_PAUSE:
			switch (keyCode) {
			case UP:
			case KEY_NUM2:
				count--;
				if (count < 0)
					count = 5;
				loadcount=0;
				break;
			case DOWN:
			case KEY_NUM8:
				count++;
				if (count > 5)
					count = 0;
				loadcount=0;
				break;
			case FIRE:
			case SOFTKEY1:
			case KEY_NUM5:
				switch(count){
				case 0:
//#ifdef _BT
					if(data.equals(Integer.toString(-5))||isServer==0){
						if(isServer==1){
							server.send("-6");
						}else if(isServer==2){
							client.send("-6");
						}
						ispause=false;
						count=0;
						G_STATE=G_PLAY;
					}else{
						if(isServer==1){
							server.send("-5");
						}else if(isServer==2){
							client.send("-5");
						}
					}
//#else
//					ispause=false;
//					count=0;
//					G_STATE=G_PLAY;
//#endif
					break;
				case 1:
					count=0;
					G_STATE=G_HELP;
					break;
				case 2:
					G_STATE=G_SET;
					break;
				case 3:
					G_STATE=G_TOP;
					break;
				case 4:
					G_STATE=G_ABOUT;
					break;
				case 5:
					if (islist()) {
						myname = new StringBuffer();
						count = 12;
						loadcount = 0;
						ispause=false;
//#ifdef _BT
						if(isServer==1){
							server=null;
							isServer=0;
						}else if(isServer==2){
							client=null;
							isServer=0;
						}
//#endif
						G_STATE = G_END;
					}else{
						count=0;
						loadcount=0;
						ispause=false;
						init();//初始化顺序
						G_STATE=G_MENU;
					}
					break;
				}
				break;
			case SOFTKEY2:
//#ifdef _BT
				if(data.equals(Integer.toString(-5))||isServer==0){
					if(isServer==1){
						server.send("-6");
					}else if(isServer==2){
						client.send("-6");
					}
					ispause=false;
					count=0;
					G_STATE=G_PLAY;
				}else{
					if(isServer==1){
						server.send("-5");
					}else if(isServer==2){
						client.send("-5");
					}
				}
//#else
//				ispause=false;
//				count=0;
//				G_STATE=G_PLAY;
//#endif
				break;
			}
			break;

		}
	}
	
	//60机型
	private boolean isp=true;
	// -------------------------------------来电中断处理--------------------------------
	protected void hideNotify() {
		isp=false;
		stopsound();
		pausegame();

	}

	protected void showNotify() {
	}

//	 -------------------------------------暂停--------------------------------
	private void pausegame(){
		if(G_STATE==G_PLAY){
//#ifdef _BT
			if(isServer==1){
				server.send("-4");
			}else	if(isServer==2){
				client.send("-4");
			}
//#endif
			ispause=true;
			count=0;
			loadcount=0;
			G_STATE=G_PAUSE;
		}
		
	}
	
	
	// -------------------------------------RMS存储--------------------------------
	private void saverms() {
		byte buffer[]=new byte[1];
		buffer[0]=(byte)(soundon?1:-1);
		try {
			RecordStore.deleteRecordStore("ping_db");
		} catch (Exception e) {
			e.printStackTrace();
		}

		RecordStore rsdata = null;
		try {
			rsdata = RecordStore.openRecordStore("ping_db", true);
			rsdata.addRecord(buffer,0,buffer.length);
			for (int i = 0; i < 3; i++) {
				if (name[i] != null) {
					byte[] data = parsedata(name[i], score[i]);
					rsdata.addRecord(data, 0, data.length);
				}
			}
		} catch (RecordStoreException e) {
			e.printStackTrace();
		} finally {
			try {
				rsdata.closeRecordStore();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	private byte[] parsedata(String name, long score) {
		StringBuffer temp = new StringBuffer();
		temp.append(name);
		temp.append(',');
		temp.append(Long.toString(score));
		byte[] data = temp.toString().getBytes();
		return data;
	}

	private void loadrms() {
		RecordStore rsdata = null;
		try {
			byte buffer[]=new byte[1];
			byte data[];
			rsdata = RecordStore.openRecordStore("ping_db", true);
			System.out.println(rsdata.getNumRecords());
			buffer=rsdata.getRecord(1);
			soundon=buffer[0]>0?true:false;
			System.out.println(""+soundon);
			for (int i = 0; i < 3; i++) {
				data = rsdata.getRecord(i + 2);
				String temp = new String(data);
				for (int n = 0; n < temp.length(); n++) {
					if (temp.charAt(n) == ',') {
						name[i] = temp.substring(0, n);
						System.out.println(name[i]);
						score[i] = Long.parseLong(temp.substring(n + 1));
						System.out.println("" + score[i]);
					}
				}

			}
		} catch (Exception e) {
		} finally {
			try {
				System.out.println("ok");
				rsdata.closeRecordStore();
			} catch (Exception e) {
			}
		}
	}

	// ------------------------------判断是否上高分榜------------------------------------------------------------
	private boolean islist() {
		for (int i = 0; i < 3; i++) {
			if (score[3] >= score[i]) {
				for(int n=1;n>=i;n--){
					score[n+1]=score[n];
					name[n+1]=name[n];
				}
				score[i] = score[3];
				no = i;
				return true;
			}
		}
		return false;
	}
	
	
	// --------------------------------------计算分数-----------------------------------------------------------
	private void comscore() {
		index[0]=(int)score[3]/100000;
		index[1]=(int)(score[3]%100000)/10000;
		index[2]=(int)(score[3]%10000)/1000;
		index[3]=(int)(score[3]%1000)/100;
		index[4]=(int)(score[3]%100)/10;
		index[5]=(int)score[3]%10;
	}

	// --------------------------------------进入TYPE-----------------------------------------------------------
	private void gotype(){
		view=false;
		typeindex=new byte[5];
		for(int i=0;i<5;i++){
			typeindex[i]=(typenum[order[stage]]+i)<=9?(byte)Math.abs(typenum[order[stage]]+i):(byte)Math.abs(typenum[order[stage]]+i-10);
		}
		correct=Math.abs(rd.nextInt()%5);
		byte temp=typeindex[0];
		typeindex[0]=typeindex[correct];
		typeindex[correct]=temp;
	}
	
	
	// --------------------------------------UI-----------------------------------------------------------
	private void mainui(Graphics g,String name){
		g.drawImage(menu,WIDTH/2,HEIGHT/2,Graphics.HCENTER|Graphics.VCENTER);
		g.setColor(0xFEDC00);
		g.fillRect(WIDTH/2-10,HEIGHT/2-75,82,169);
		g.setColor(0x000000);
		g.fillRect(0,0,WIDTH,HEIGHT/8);
		g.fillRect(0,HEIGHT-20,WIDTH,20+1);
		g.setColor(0xffffff);
		g.drawLine(0,HEIGHT/8,WIDTH,HEIGHT/8);
		g.drawLine(0,HEIGHT-20,WIDTH,HEIGHT-20);
		g.drawImage(ui,5,HEIGHT/8-2,Graphics.LEFT|Graphics.BOTTOM);//画LOGO
		g.drawString(name,WIDTH/2,HEIGHT/8-1,Graphics.HCENTER|Graphics.BOTTOM);
	}
	
	
	// --------------------------------------构造字母-----------------------------------------------------------
	private void font(Graphics g) {
		for (int i = 0; i < 12; i++) {
			if(i==6){
				g.setClip(WIDTH / 2 - 90 + i * 15, HEIGHT * 2 / 3 - 8,9,10);
				g.drawImage(font, WIDTH / 2 - count * 9 , HEIGHT * 2 / 3 - 8,Graphics.LEFT | Graphics.TOP);
			}else{
				g.setClip(WIDTH / 2 - 90 + i * 15, HEIGHT * 2 / 3,9,10);
				g.drawImage(font, WIDTH / 2 - 90 + i * 15- (count+i-6 )* 9 , HEIGHT * 2 / 3,Graphics.LEFT | Graphics.TOP);
			}
		}
		g.setClip(0, 0,WIDTH,HEIGHT);
		g.drawImage(posts,WIDTH / 2-2, HEIGHT * 2 / 3 + 8,Graphics.LEFT|Graphics.TOP);

	}

	// --------------------------------------画BUTTON-----------------------------------------------------------
	private void pcommand(Graphics g, String left, String right) {
		g.setColor(0xFFFFFF);
		if (!left.equals("")) {
			g.drawString(left, 0, HEIGHT, Graphics.LEFT | Graphics.BOTTOM);
		}
		if (!right.equals("")) {
			g
					.drawString(right, WIDTH, HEIGHT, Graphics.RIGHT
							| Graphics.BOTTOM);
		}
	}
	
	

	
	private byte soundindex=-1;
	private void playsound(int index,boolean circu){
		if(!soundon){
			return;
		}
		stopsound();
		
		try{
			InputStream is=getClass().getResourceAsStream("/sound"+index+".mid");
			sound=Manager.createPlayer(is,"audio/midi");
			if(circu){
				sound.setLoopCount(-1);
			}else{
				sound.setLoopCount(1);
			}
			if(sound.getMediaTime()>0){
				sound.setMediaTime(0);
			}
			sound.start();
			soundindex=(byte)index;
			is.close();
			is=null;
		}catch(Exception e){e.printStackTrace();}
	}
	
	private void stopsound(){
		if(soundindex==-1){
			return;
		}

		try{
			sound.stop();
			sound.close();
			sound=null;
			soundindex=-1;
		}catch(Exception e){e.printStackTrace();}
	}
	
	
//#ifdef _BT
	public void change() {
		// TODO 自动生成方法存根
		level=4;
		loadimage();
		G_STATE=G_START;
		
	}
	
	public void read(byte[] temp){
		data=(new String(temp)).trim();
		if(data.equals(Integer.toString(-1))){
			pick=true;
			G_STATE=G_START;
		}else if(data.equals(Integer.toString(-3))){
				loadimage();
				G_STATE = G_START;
		}else if(data.equals(Integer.toString(-4))){
			pausegame();
		}else if(data.equals(Integer.toString(-6))){
			ispause=false;
			count=0;
			G_STATE=G_PLAY;
		}
		
	}
//#endif
	
	

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -