正文

转贴 我的第一个J2ME商业游戏源代码 2006-11-07 14:49:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/sword2008/20059.html

分享到:

我写的个贴子被移动到了非技术区,刚才发不小心自己也发到了非技术区,现在重发,请管理员把非技术区我的帖子删除。为了让更多同行得到原代码,再开贴,希望管理员不要移动,那样看到的人很少,不利大家共同进步。 我以前写的商业游戏原代码,原来在国外SP使用,似乎国内一直没有用,部分被重写(有些原公司不让公开),如果是BIG5版本的大家找个东东翻译一下好了,呵呵 需要的可以去下面网址看样本 ,更多代码到群里去下,这里只能发代码段不能发完整的带图片的整个程序 http://L999.68ab.com QQ群:8294554龙王J2ME游戏制作,交流技术,共同进步   import javax.microedition.lcdui.*;import javax.microedition.midlet.*;import java.util.*;import com.nokia.mid.ui.*;import com.nokia.mid.sound.*; public class csbw extends MIDlet{        private Display dp;        //re1,rz2是人质,dr1,dr2是敌人,xue1:血条值,qiang1:枪,qiang2;枪(太久或雷,我忘了);yyx1也忘了        Image ftu,rz1,rz2,dr1,dr2,xue1,qiang1,qiang2,yyx1;        Timer tm,tm2;        private Fca fca;        //声音单音        Sound s = new Sound(800, 120);        Sound s1 = new Sound(1200, 150);        Sound s2 = new Sound(1000, 100);        Sound s3 = new Sound(1500, 180);        DateField dtime;        //图片显示位置数组        int X[]={19,52,90,19,52,90,19,52,90};        int Y[]={32,32,32,64,64,64,96,96,96};        //gm,gmgd,和过关和结束有关,我也忘了        private boolean gm,gmgd,yn=true,leif;        public String keys;//="axzxvz";        public int jf,z,sd=18,w,ds=8,xu=92,guan=1,dtm,j0,yyx2;        public byte rets,j,k,kkk,a,x,y,X1,Y1,kq,lei=3,tsx,i,mm,kd,dz,xz,xzjx=1; public csbw(){fca =new Fca();dp=Display.getDisplay(this);  }  protected void startApp(  ) throws MIDletStateChangeException{      dp.setCurrent(fca);//gtimer(5000); } protected void pauseApp(  ){} protected void destroyApp( boolean b ){} class Fca extends FullCanvas{       int gg1,gg2,rr1,gg,rr3, gg3,rr2,rr,a4,a5;byte ht2,HT;boolean helps;public void paint(Graphics g){     if(helps){//退出g.setColor(0, 0,0);g.fillRect(0,0,128,128);g.setColor(0,255,0);g.drawString("Operation note", getWidth()/2, 5 , Graphics.TOP | Graphics.HCENTER);g.setFont ( Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL));g.setColor(100,100,255);g.drawString(" Open fire:1-9", 0, 30 , Graphics.TOP |Graphics.LEFT);g.drawString(" corresponding the place", 0, 40 , Graphics.TOP |Graphics.LEFT);g.drawString(" of enemy on screen. ", 0, 50 , Graphics.TOP |Graphics.LEFT);g.drawString(" Use bomb: # ", 0, 65 , Graphics.TOP |Graphics.LEFT);g.drawString(" Can kill all enemy.", 0, 75 , Graphics.TOP |Graphics.LEFT);g.setColor(255,0,0);g.drawString(" Don't kell civilian!", 0, 105 , Graphics.TOP |Graphics.LEFT);}else{//设置switch(tsx){case 0://bozi logogtimer2(5000); g.setColor(0, 0,0);g.fillRect(0,0,128,128);g.drawImage(loinImage("/tu1.png",121,92,-2,-126),0,20,Graphics.LEFT|Graphics.TOP);ftu=null;gmgd=true;tsx=1;break; case 1:tm2.cancel();g.setColor(0, 0,0);g.fillRect(0,0,128,128);g.drawImage(loinImage("/tu1.png",127,125,0,0),-1,0,Graphics.LEFT|Graphics.TOP); g.setColor(0, 0,220);ftu=null;g.setFont ( Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_MEDIUM));switch(xz){case 0:rr=140;gg=140;rr1=255;gg1=255;rr2=140;gg2=140;rr3=140;gg3=140;break;case 1:rr1=140;gg1=140;rr=255;gg=255;rr2=140;gg2=140;rr3=140;gg3=140;break;case 2:rr1=140;gg1=140;rr=140;gg=140;rr2=255;gg2=255;rr3=140;gg3=140;break;case 3:rr1=140;gg1=140;rr=140;gg=140;rr3=255;gg3=255;rr2=140;gg2=140;break;} g.setColor(rr1, gg1, 0);  g.drawString("Soldier", getWidth()/2, 61 , Graphics.TOP | Graphics.HCENTER);g.setColor(rr, gg, 0);g.drawString("Partizan", getWidth()/2, 74 , Graphics.TOP | Graphics.HCENTER);g.setColor(rr2, gg2, 0);g.drawString("Help", getWidth()/2, 87 , Graphics.TOP | Graphics.HCENTER);g.setColor(rr3, gg3, 0);g.drawString("Exit", getWidth()/2, 100 , Graphics.TOP | Graphics.HCENTER);gm=false;//tsx=1;break; //zhu  String.valueOf(jf)case 3:g.setColor(0,0,0);g.fillRect(0,0,128,128);if(xz==1){a=-24;}else{a=0;}g.drawImage(loinImage("/tu2.png",24,19,a,0),4,4,Graphics.LEFT|Graphics.TOP);ftu=null;g.drawImage(loinImage("/tu0.png",128,128,0,0),0,0,Graphics.LEFT|Graphics.TOP);g.drawImage(loinImage("/cj0.png",122,109,0,0),3,16,Graphics.LEFT|Graphics.TOP);ftu=null;g.setColor(255, 255,0);g.setFont ( Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL));g.drawString("X"+String.valueOf(lei), 73, 2 , Graphics.TOP | Graphics.LEFT);g.drawString("L"+String.valueOf(guan), 29, 2 , Graphics.TOP | Graphics.LEFT);g.drawString(String.valueOf(jf), 95, 2 , Graphics.TOP | Graphics.LEFT);//98g.setColor(255,0,0);g.fillRect(18,123,92,1);g.setColor(255,150,0);g.fillRect(18,124,92,1); gtimer(100);tsx=5;suanshu();//dtm=break; //kaiqiang*/case 4:if ((dz==0)&(X1!=0)&(z>1)){xu=xu-4;s.play(1);if (xu<=0){gm=true;tm.cancel();gtimer2(1);} if (qiang1==null){qiang1=loinImage("/tu2.png",7,8,-72,0);}g.drawImage(qiang1,X1+8,Y1+11,Graphics.LEFT|Graphics.TOP);g.setColor(0,0,0);g.fillRect(18+xu,123,4,2);} break; //huatucase 5://清原来图dz=0;g.setColor(0,0,0);if(X1!=0){g.fillRect(X1,Y1,HT,19);} switch(z){//renzhicase 0:if (rz1==null){rz1=loinImage("/tu2.png",24,19,-48,0);rz2=loinImage("/tu2.png",19,19,-48,0);}if(x==52){g.drawImage(rz1,x,y,Graphics.LEFT|Graphics.TOP);HT=24;}else{g.drawImage(rz2,x,y,Graphics.LEFT|Graphics.TOP);HT=19;}break; //yiyaoxiangcase 1:if (yyx1==null){yyx1=loinImage("/tu2.png",19,19,-105,0);}g.drawImage(yyx1,x,y,Graphics.LEFT|Graphics.TOP);HT=19;break;//direndefault:if(xz==1){ht2=0;}else{ht2=-24;}if(dr1==null){dr1=loinImage("/tu2.png",24,19,ht2,0);dr2=loinImage("/tu2.png",19,19,ht2,0);}if(x==52){g.drawImage(dr1,x,y,Graphics.LEFT|Graphics.TOP);HT=24;}else{g.drawImage(dr2,x,y,Graphics.LEFT|Graphics.TOP);HT=19;}} ftu=null;X1=x;Y1=y;break; //zidan/xuecase 6:if((dz==0)&(j==X1)&(k==Y1)){dz=1;if(xue1==null){xue1=loinImage("/tu2.png",19,19,-85,0);}ds=4; switch(z){case 0:s1.play(1);xu=xu-4;g.setColor(0,0,0);g.fillRect(18+xu,123,4,2);if (xu<=0){gm=true;   tm.cancel();   gtimer2(1);      }  g.drawImage(xue1,j,k,Graphics.LEFT|Graphics.TOP);break;case 1:s3.play(1);xu=xu+8;if (xu>92){xu=92;}g.setColor(255,0,0);g.fillRect(18,123,xu,2);break;default:s2.play(1);jf++;g.drawImage(xue1,j,k,Graphics.LEFT|Graphics.TOP);   } tsx=2;}         else{a4=j+8;a5=k+8;s.play(1);if(qiang2==null){qiang2=loinImage("/tu2.png",4,5,-80,0);}g.drawImage(qiang2,a4,a5,Graphics.LEFT|Graphics.TOP);}if(jf>=9999){jf=9999;}if(jf<=0){jf=0;}if((dz==1)&(z>1)){if((jf%40==0)&(jf!=0)){if(lei<3){lei++;}guan=guan+1;g.setColor(109,103,168);g.fillRect(29,2,27,11);g.setColor(0,0,0);g.fillRect(70,2,18,10);g.setFont ( Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL));g.setColor(255,255,0);g.drawString("X"+String.valueOf(lei), 73, 2 , Graphics.TOP | Graphics.LEFT);g.drawString("L"+String.valueOf(guan), 29, 2 , Graphics.TOP | Graphics.LEFT); if(guan%4==1){g.drawImage(loinImage("/cj1.png",122,109,0,0),3,16,Graphics.LEFT|Graphics.TOP);}if(guan%4==2){g.drawImage(loinImage("/cj2.png",122,109,0,0),3,16,Graphics.LEFT|Graphics.TOP);}if(guan%4==3){g.drawImage(loinImage("/cj3.png",122,109,0,0),3,16,Graphics.LEFT|Graphics.TOP);}if(guan%4==0){g.drawImage(loinImage("/cj0.png",122,109,0,0),3,16,Graphics.LEFT|Graphics.TOP);} ftu=null;g.setColor(255,0,0);g.fillRect(18,123,92,1);g.setColor(255,150,0);g.fillRect(18,124,92,1);g.setColor(0,0,0);g.fillRect(18+xu,123,92-xu,2);} if(sd>13){if(jf%10==0){sd--;}}if((sd>11)&(sd<=13)){if(jf%15==0){sd--;}} if((sd>7)&(sd<=11)){if(jf%30==0){sd--;}}if((sd>4)&(sd<=7)){if(jf%40==0){sd--;}} g.setColor(0,0,0);g.fillRect(92,3,31,10);g.setFont ( Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL));g.setColor(255, 255,0);g.drawString(String.valueOf(jf), 95, 2 , Graphics.TOP | Graphics.LEFT);//98}break; case 2:g.setColor(0,0,0);if(X1!=0){g.fillRect(X1,Y1,HT,19);}//suanshu();break; case 7:g.setColor(0,0,0);for(i=0;i<9;i++){if((X[i]!=X1)|(Y[i]!=Y1)){      g.fillRect(X[i],Y[i],15,15);}}tsx=5;break; //leicase 8://dz=1;try{DeviceControl.startVibra(100, 200);}catch(IllegalStateException e){}if(mm==2){g.setColor(255,100,50);s.play(1);}else{g.setColor(0,0,0);s2.play(1);}for(i=0;i<9;i++){if((i==1)|(i==4)|(i==7)){kd=24;}else{kd=19;}g.fillRect(X[i],Y[i],kd,19);}break;//lei雷 case 9:g.setFont ( Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL));g.setColor(0,0,0);g.drawString("X"+String.valueOf(lei+1), 73, 2 , Graphics.TOP | Graphics.LEFT);g.setColor(255,255,0);g.drawString("X"+String.valueOf(lei), 73, 2 , Graphics.TOP | Graphics.LEFT);g.setColor(0,0,0);g.fillRect(92,3,31,10);g.setFont ( Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL));g.setColor(255, 255,0);g.drawString(String.valueOf(jf), 95, 2 , Graphics.TOP | Graphics.LEFT);//98break; case 10:tm.cancel();tm2.cancel();gm=false;gtimer2(6000);gmgd=true;yn=true;tsx=100;sd=18;xu=92;xz=0;lei=3;ds=10;rz1=null;rz2=null;dr1=null;dr2=null;dz=0;//g.setColor(120,0,0);//g.fillRect(0,0,128,128);g.setFont ( Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_LARGE));g.setColor(0,255,100);g.drawString("GAME OVER", getWidth()/2, 20 , Graphics.TOP | Graphics.HCENTER);g.setColor(255,0,0);                g.setFont ( Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_MEDIUM));                g.drawString("killed:"+String.valueOf(jf), getWidth()/2, 65 , Graphics.TOP |Graphics.HCENTER);                g.drawString("Level:"+String.valueOf(guan), getWidth()/2, 50 , Graphics.TOP |Graphics.HCENTER);                //g.drawString("gold plate:"+String.valueOf(jp/(guan+1)), 4, 70 , Graphics.TOP | Graphics.LEFT);                               g.setFont ( Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL));                g.setColor(200,200,220);                                g.drawString("Art: Lady Li.zx", getWidth()/2, 85 , Graphics.TOP | Graphics.HCENTER);                g.drawString("programme:Mr.Zhang.gx", getWidth()/2, 95 , Graphics.TOP | Graphics.HCENTER);                                  g.setColor(255,255,255);             g.drawString("Bozi Sichuan China", getWidth()/2, 110 , Graphics.TOP | Graphics.HCENTER);guan=1;jf=0;break; case 13:xu=xu-4;s.play(1);if (xu<=0){gm=true;tm.cancel();gtimer2(1);}g.setColor(0,0,0);g.fillRect(18+xu,123,4,2); g.setFont ( Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL));g.setColor(0,0,0);g.drawString("X"+String.valueOf(lei+1), 73, 2 , Graphics.TOP | Graphics.LEFT);g.setColor(255,255,0);g.drawString("X"+String.valueOf(lei), 73, 2 , Graphics.TOP | Graphics.LEFT);break;default:}}}//键盘protected void keyPressed(int keyCode) { if(tsx!=100){ if(tsx==0){tsx=1;} if(tsx==1){keys=getKeyName(keyCode);switch(getGameAction(keyCode)){case FullCanvas.UP:if(xz>0){xz--;}break;case FullCanvas.DOWN:if(xz<3){xz++;}break;}       if(keyCode==KEY_SOFTKEY1){       if(helps){helps=false;repaint();}else{if(xz==3){destroyApp(false);notifyDestroyed();}        else{if(xz==2){helps=true;}        else{gmgd=false;tsx=3;}}}}//repaint();       }       //游戏键盘else{        if(keyCode==KEY_SOFTKEY2){tm.cancel();gm=false;gmgd=true;yn=true;tsx=1;sd=18;xu=92;xz=0;lei=3;guan=1;jf=0;ds=10;rz1=null;rz2=null;dr1=null;dr2=null;dz=0;        }         else{        switch(keyCode){case KEY_NUM1:j=19;k=32;kkk=0;tsx=6;  break;case KEY_NUM2:j=52;k=32;kkk=1;tsx=6;break;case KEY_NUM3:j=90;k=32;kkk=2;tsx=6;break;case KEY_NUM4:j=19;k=64;kkk=3;tsx=6;break;case KEY_NUM5:j=52;k=64;kkk=4;tsx=6;break;case KEY_NUM6:j=90;k=64;kkk=5;tsx=6;break;case KEY_NUM7:j=19;k=96;kkk=6;tsx=6;break;case KEY_NUM8:j=52;k=96;kkk=7;tsx=6;break;case KEY_NUM9:j=90;k=96;kkk=8;tsx=6;break;case KEY_POUND:if(lei>0){lei--;if(z==0){tsx=13;}if(z>1){jf++;tsx=9;}ds=1;mm=3;}  break;  }}}       repaint();}}} //启动public Image loinImage(String fls,int k,int h,int K,int H){Image tu;try{tu = Image.createImage(fls);}catch(Exception e){tu=null;}ftu=DirectUtils.createImage(k, h, 0x00000000);//logoGraphics g = ftu.getGraphics();g.drawImage(tu, K , H, Graphics.TOP | Graphics.LEFT);tu=null; return ftu; } //定时任务public class ttt extends TimerTask{ public void run(){ ds--; if(tsx==100){tsx=1;tm.cancel();} else{ if(gm){tm.cancel();tsx=10;} else{ if(kq++>=3){kq=0;tsx=7;}        if(ds<=0){suanshu();}        if(mm>0){mm--;tsx=8;}if(ds==2){tsx=4;}}}fca.repaint();}} public void gtimer(int yanchi){tm=new Timer();TimerTask tk = new ttt();tm.schedule(tk,10,yanchi); } public class ttt2 extends TimerTask{ public void run(){ if(tsx==1){fca.repaint();} if(tsx==100){tm2.cancel();tsx=1;fca.repaint();} else if(gm){tm2.cancel();tsx=10;fca.repaint();}}} public void gtimer2(int yanchi){tm2=new Timer();TimerTask tk = new ttt2();tm2.schedule(tk,yanchi); } //确定人物和位置public void suanshu(){int lw=10;Random rand = new Random();//确定人物 z=Math.abs(rand.nextInt()%25); //确定位置 do{lw=Math.abs(rand.nextInt()%9);} while(w==lw);switch(lw){case 0:x=19;y=32;break;case 1:x=52;y=32;break;case 2:x=90;y=32;break;case 3:x=19;y=64;break;case 4:x=52;y=64;break;case 5:x=90;y=64;break;        case 6:x=19;y=96;break;case 7:x=52;y=96;break;case 8:x=90;y=96;break;        }        w=lw;        ds=sd;        tsx=5;        fca.repaint();               }}  

阅读(4909) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册