📄 ca1.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package yuan;import javax.microedition.lcdui.*;import javax.microedition.lcdui.game.Sprite;import java.io.*;import java.util.Random;import javax.microedition.media.*;import javax.microedition.media.control.VolumeControl;/** * @author YUANYUEXIANG */public class ca1 extends Canvas implements CommandListener{ Command c1=new Command("再来",Command.OK,1); Command c2=new Command("退出",Command.EXIT,2); Player p1=null; Player p2=null; Player p3=null; Player p4=null; static Sprite[] s=new Sprite[12]; //InputStream in=this.getClass().getResourceAsStream("/yuan/event.mid"); Random ram=new Random(); /////////////////////////////////定位交换区 static int x=1; static int y=2; static int bushu; static int fz; static int mz; int h=320; /////////////////////////////// Image img; static boolean fw=false; static boolean f=true; static boolean f211=true; static boolean fwz=true; static boolean end=false; static boolean xsvl=false; static boolean sjjs=true; VolumeControl vc=null; int vl=20; XCsj xcsj=new XCsj(); public ca1() { this.setFullScreenMode(true); this.addCommand(c1); this.addCommand(c2); this.setCommandListener(this); //加载图片,并进行洗牌 try { int[] seg=new int[12]; for(int i=0;i<s.length;i++) { seg[i]=i; } for(int i=0;i<s.length;i++) { int a=ram.nextInt(12); int b=ram.nextInt(12); int temp=seg[a]; seg[a]=seg[b]; seg[b]=temp; } img=Image.createImage("/yuan/pic_11.png"); for(int i=0;i<s.length;i++) { s[i]=new Sprite(img,80,80); s[i].setPosition((i%3)*80,(i/3)*80); s[i].setFrame(seg[i]); } } catch(Exception e) { e.printStackTrace(); } bushu=0; fz=0; mz=0; sjjs=true; xcsj.start(); ///////////////////////////////////////////////// /*InputStream in=this.getClass().getResourceAsStream("/yuan/xyl5.mid"); try{p4=Manager.createPlayer(in,"audio/midi"); } catch(Exception e){} try{ p4.start(); }catch(Exception e){} *///////////////////////////////////////////////// //vc=(VolumeControl)p1.getControl("javax.microedition.media.control.VolumeControl"); //vc=(VolumeControl)p2.getControl("javax.microedition.media.control.VolumeControl"); //vc=(VolumeControl)p3.getControl("javax.microedition.media.control.VolumeControl"); // vc.setLevel(vl); } //////在画布上画格子,并绘制交换区 public void paint(Graphics g) { for(int i=0;i<s.length;i++) { s[i].paint(g); } g.drawLine(0, 0, 240, 0); g.drawLine(0, 80, 240, 80); g.drawLine(0, 160, 240, 160); g.drawLine(0, 240, 240, 240); g.drawLine(80, 0, 80, 320); g.drawLine(160, 0, 160, 320); if(fwz==true){///交换区 g.setColor(255,255,150); //g.setColor(0,0,0); g.fillRect(x*80+1, y*80+1, 80-1, 80-1); }/////////////////////// g.setColor(255, 0, 0); if(f==false){ g.drawImage(img,0,0,Graphics.TOP|Graphics.LEFT); f=true; } if(end==true){ g.setColor(255,234, 0); g.drawString("你终于胜利了", 80, h,Graphics.TOP|Graphics.LEFT); g.drawString("CLDC:1.1", 80, h+25,Graphics.TOP|Graphics.LEFT); g.drawString("MIDP:2.0", 80, h+50,Graphics.TOP|Graphics.LEFT); } if(xsvl==true){ g.drawString("背景音乐音量:", 20, 230,Graphics.TOP|Graphics.LEFT); g.setColor(0,255,0); g.drawRect(20, 250, 200,20); g.setColor(255,0,0); g.fillRect(21, 251, vl*2-1,19); } /////////////////////////////////////////////////////////////////// g.drawString("步数:", 10, 100,Graphics.TOP|Graphics.LEFT); g.drawString(Integer.toString(bushu), 40, 100,Graphics.TOP|Graphics.LEFT); g.drawString("用时:", 10, 120,Graphics.TOP|Graphics.LEFT); g.drawString(Integer.toString(fz)+":"+Integer.toString(mz), 40, 120,Graphics.TOP|Graphics.LEFT); /////////////////////////////////////////////////////////////////// } //////////////////////////////////////////////////////////////////// public class XC extends Thread { boolean isrunning=true; public void run() { while(isrunning==true){ if(h>100){ h--; }else{h=100;} repaint(); try{ Thread.sleep(50); } catch(Exception e){} } } } boolean isrunning=true; /////////////////////////////////////////////////////////// public class XC2 extends Thread { public void run() { if(isrunning==true){ if(vl<100){ vl+=20; }else{ vl=100;isrunning=false; } } else{ if(vl>0){ vl-=20; }else{ vl=0;isrunning=true; } } try{ Thread.sleep(0); } catch(Exception e){} } } /////////////////////////////////////////////////////////// public class XC1 extends Thread { public void run() { InputStream in=this.getClass().getResourceAsStream("/yuan/event.mid"); try{p2=Manager.createPlayer(in,"audio/midi"); } catch(Exception e){} try{ p2.start(); Thread.sleep(1000); }catch(Exception e){} p2.close(); try{ in.close();} catch(Exception e){} } } ////////////////////////////////////////////////////////// public class XCs extends Thread { public void run() { InputStream in=this.getClass().getResourceAsStream("/yuan/lostBlood.mid"); try{p3=Manager.createPlayer(in,"audio/midi"); } catch(Exception e){} try{ p3.start(); Thread.sleep(600); }catch(Exception e){} p3.close(); try{ in.close();} catch(Exception e){} } } ///////////////////////////////////////////////////////////// public class XC3 extends Thread { public void run() { try{ Thread.sleep(3000); } catch(Exception e){} xsvl=false; repaint(); } } //////////////////////////////////////////////////////////////// public class XCsj extends Thread { public void run() { while(sjjs==true){ mz++; if(mz%60==0){ fz++; mz=0; } repaint(); try{ Thread.sleep(1000); } catch(Exception e){} } } } //////////////////////////////////////////////////////////////////// protected void keyPressed(int keyCode) { //////down键 if(keyCode==-1) { if(y<3) { XC1 xc1=new XC1(); xc1.start(); int a=x+y*3; int b=x+(y+1)*3; int f1=s[a].getFrame(); s[a].setFrame(s[b].getFrame()); s[b].setFrame(f1); } y++; ///////////////////////////////////////////////// //////////////////////////////////////不能交换时动作 if(y>3) { XCs xcs=new XCs(); xcs.start(); y=3; } } //////////////////////////up if(keyCode==-2) {if(y>0) { XC1 xc1=new XC1(); xc1.start(); int a=x+y*3; int b=x+(y-1)*3; int f1=s[a].getFrame(); s[a].setFrame(s[b].getFrame()); s[b].setFrame(f1); } y--; if(y<0) { XCs xcs=new XCs(); xcs.start(); y=0; } } ///////////////////////////right if(keyCode==-3) {if(x<2) { XC1 xc1=new XC1(); xc1.start(); int a=x+y*3; int b=x+y*3+1; int f1=s[a].getFrame(); s[a].setFrame(s[b].getFrame()); s[b].setFrame(f1); } x++; if(x>2) { XCs xcs=new XCs(); xcs.start(); x=2; } } ///////////////////////////////left if(keyCode==-4) {if(x>0) { XC1 xc1=new XC1(); xc1.start(); int a=x+y*3; int b=x+y*3-1; int f1=s[a].getFrame(); s[a].setFrame(s[b].getFrame()); s[b].setFrame(f1); } x--; if(x<0) { XCs xcs=new XCs(); xcs.start(); x=0; } } ///////////////////////////////////////////////////////////////////////// if(keyCode==42)//"*"键,全图查看 { for(int i=0;i<12;i++) { s[i].setFrame(i); } } ////////////////////////////////////////////////////////////////////////// if(keyCode==35)//直接胜利 {if(f211==true){ f=false; f211=false; }else{f211=true;} } ////////////////////////////////////////加载音乐///////////////////// /* if(keyCode==ca1.KEY_NUM0)//"*"键,全图查看 { XC2 xc2=new XC2(); xc2.start(); vc.setLevel(vl); xsvl=true; XC3 xc3=new XC3(); xc3.start(); }*/ ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// boolean win=true;//判断胜利 for(int i=0;i<12;i++) { if(s[i].getFrame()!=i) {win=false;break;} } if(win){ x=2; y=3; this.setFullScreenMode(false); fwz=false; fw=true; XC xc=new XC(); xc.start(); sjjs=false; ca1.sjjs=false; end=true; try{ p1=Manager.createPlayer(getClass().getResourceAsStream("/yuan/xyl5.mid"),"audio/midi"); } catch(Exception e) {} try{ p1.start(); }catch(Exception e) {} } bushu++; this.repaint(); /////////////////////////////////////////////////////////////////////////////// } //////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////public void commandAction(Command c,Displayable dis) { if(dis==this) { if(c==c1) { fwz=true; try{ p1.stop(); p1.close(); //p4.stop(); }catch(Exception e) {} x=1; y=2; yue.game(); } if(c==c2) { try{ p1.stop(); p1.close(); }catch(Exception e) {} yue.quitApp(); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -