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

📄 ca1.java

📁 j2me 手机拼图源码
💻 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 + -