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

📄 moomcanvas.java

📁 月球人的遊戲喔 AMD S3000+ 64Bit $2770 華碩 K8N4-E (PCI-E) $3100 華碩 N6200 TC256/128MBTOP $1890 BNEQ 1640
💻 JAVA
📖 第 1 页 / 共 2 页
字号:


import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.* ;
import javax.microedition.io.*;
import java.util.Random;

public class MoomCanvas extends Stage implements Runnable {
	
	public boolean 	 gun=false;
	private LayerManager lm=new LayerManager ();
	private Image 	     img,screen,imgLv,imgLf,imgSc,imgPr,allman[];
	private Goodman      spaceman;
	private Badman       tongs[]=new Badman[3];
	private Badman       tank[] =new Badman[3];
	private Badman       speed[]=new Badman[3];
	private Badman       fire[] =new Badman[5];
	private Badman       snail[]=new Badman[4];
	private Badman       elec[] =new Badman[2];
	private Badman       wheel[]=new Badman[2];
	private Badman       boom[] =new Badman[2];
	private Badman       com,laser;
	private Goods        jump,canvas,weapon,fuel,shoot,blood;
	private Goods        sharp[]=new Goods[20];
	private MoomBackground bg ;
	private String       space="",sep="-",des[];
	private int          i=0,life=3,level=1,win=3,score=0,bd=5;
	private int          tankNum=3,tongsNum=3,furitNum=10,snailNum=4,speedNum=3,fireNum=5;
	private int          elecNum=2,wheelNum=2,sharpNum=20,boomNum=2;
	private Graphics     g=getGraphics();
	private Random       r=new Random();
	private final  int   SCREEN_LIMIT=32,PRE_LOCATION_X=-200,PRE_LOCATION_Y=-200,TYPE=3;	
	private final  int   WIN_CONTI=1750;
	private final  int   CANVAS_UBOUND=1600,CANVAS_LBOUND=40,MSG_LIMIT=17;
	private final  int   TILEDCOLUMN=56,TILEDROW=10,PLAYERX=33,PLAYERY=100;
	private int          dir=0,distance=0;
	private int          keystate;
	private ParameterList parlist =new ParameterList();

	public  MoomCanvas(){
		super(true);

		try{
		 	img =Image.createImage("/Moom/box.png");
		 	spaceman=new Goodman(img,20,32,PLAYERX,PLAYERY);
		 	
		 	img =Image.createImage("/Moom/jump.png");
		    	jump=new Goods(img,32,20,1700,160);
		    
 			img =Image.createImage("/Moom/stageground.png");
		 	bg=new MoomBackground(TILEDCOLUMN,TILEDROW,img,32,20,level);
		 	
		 	img =Image.createImage("/Moom/elector.png");
		 	elec[0]=new Badman(img,16,160,1070,32);
		 	elec[1]=new Badman(img,16,160,1550,32);
		 	
		 	img =Image.createImage("/Moom/wheel.png");
		 	wheel[0]=new Badman(img,24,24,PRE_LOCATION_X,PRE_LOCATION_Y);
		 	wheel[1]=new Badman(img,24,24,PRE_LOCATION_X,PRE_LOCATION_Y);
		 	
		 	img =Image.createImage("/Moom/weapon3.png");
		 	weapon=new Goods(img,32,32,PRE_LOCATION_X,PRE_LOCATION_Y);
		 	
		 	img =Image.createImage("/Moom/tank.png");
		 	for(i=0;i<tankNum;i++)
		 		tank[i]=new Badman(img,31,29,PRE_LOCATION_X,PRE_LOCATION_Y);

		 	img =Image.createImage("/Moom/soldier.png");
		 	for(i=0;i<snailNum;i++)
		 	    snail[i]=new Badman(img,24,24,PRE_LOCATION_X,PRE_LOCATION_Y);

		 	img =Image.createImage("/Moom/fuel.png");
		 	fuel=new Goods(img,24,24,PRE_LOCATION_X,PRE_LOCATION_Y); 

		 	screen=Image.createImage("/Moom/moombase.png");
		 	canvas=new Goods(screen,2380,208,0,0); 

		 	img =Image.createImage("/Moom/bar.png");
		 	blood=new Goods(img,9,28,5,43);
		 	imgLv=Image.createImage("/Moom/lv.png");
		 	imgLf=Image.createImage("/Moom/lf.png");
		 	imgSc=Image.createImage("/Moom/sc.png"); 
     	
		 } catch (java.io.IOException e){}
		 spaceman.plat_init(20,32);
		 lm.append(spaceman);
		
		 lm.append(weapon);
		 lm.append(jump);
		 lm.append(elec[0]);
		 lm.append(elec[1]);
		 lm.append(wheel[0]);
		 lm.append(wheel[1]);
		 
		 for(i=0;i<tankNum;i++) {
		     lm.append(tank[i]);
         	 }
        
         	lm.append(bg);
         	for(i=0;i<snailNum;i++) 
             		lm.append(snail[i]);
         	 lm.append(fuel);

		 spaceman.setBg(bg);
		 spaceman.setJump(jump);
	
		 lm.append(canvas);
		 
		 setFullScreenMode(true);
		 g.setClip(0,0,176,208);
		 
		 CreateFuel();
	}
	
	public void start(){
 		Thread g = new Thread(this);
        g.start();
 	}
 	
 	public void run(){
 		
		
 		while(conti){
	 		try{
 				Thread.sleep(0);}
 			catch (InterruptedException e){}
 	    	input();
 	    	switch (level) {
 	    	case 1:   
			        
						
			       if(spaceman.collGood(fuel)){
			    	   life++;
			    	   fuel.setVisible(false);
			    	}
			        CreateSnail();
			        CreateElec();
			        CreateTank();
			        CreateWheel(); 
			        CreateWeapon();	 			
				checkLife();
				checkWin();
 	    			render(g);
 	    			break;
 	    	 case 2:
		   		
 	    			break;
 	    	 case 3:
		   		
 	    			break;						
 			
 			case 4:
 				
 			}
 		}
 		if(life==0)
		   GameOver();
 	}
 	
 	public synchronized void input(){
 		keystate = getKeyStates();
		if(keystate ==UP_PRESSED) {
			if(spaceman.getState()==0)  
			   spaceman.setState(1);
 		}    
		if(keystate ==RIGHT_PRESSED) {
		   spaceman.primalman_moveRight();
		   spaceman.collidect(bg,1);
		   spaceman.collJump(1);
	
		}		
		if(keystate ==LEFT_PRESSED) {		
		   spaceman.primalman_moveLeft();
		   spaceman.collidect(bg,2);
		   spaceman.collJump(2);
	
		}
		
		if(keystate==1024){
		   if(gun==false) {	
		      gun=true;
		      dir=0;
		      distance=0;
		      spaceman.setFrame(7);
		      spaceman.setTransform(0);
		      weapon.setFrame(0);
		      weapon.setPosition(spaceman.getX()+25,spaceman.getY());
		   }   
		}
		if(keystate ==512) {
		   if(gun==false) {	
		      gun=true;
		      dir=1;
		      distance=0;
		      spaceman.setFrame(7);
		      spaceman.setTransform(2);
		      weapon.setFrame(0);
		      weapon.setPosition(spaceman.getX()-10,spaceman.getY());
		   }   
		}  	   	 
	}
	
	public void checkLife(){
		if(spaceman.getY()>210 ) {
		   death();
		   spaceman.death();
		}
		if(bd==0){
		   death();
		   spaceman.death();
		} 	
		if(life==0)
		   GameOver();
	}
	
	public void death(){
		System.gc();
		spaceman.setFrame(6);
		spaceman.move(0,-50);
		render(g);
		try{
 				Thread.sleep(1000);}
 			catch (InterruptedException e){}
		for(int i=10;i<100;i=i+10)
 			{spaceman.move(0,i);
 			 render(g);}
 		try{
 				Thread.sleep(1000);}
 			catch (InterruptedException e){}
 		life--;
 		for(int i=0;i<tankNum;i++){
 			tank[i].live=false;
 			tank[i].setInit();
 			speed[i].live=false;
 			speed[i].setInit();
 		}	 
 		for(int i=0;i<snailNum;i++) {
 		    snail[i].live=false;
 		    snail[i].setVisible(true);
 		}
 		for(int i=0;i<fireNum;i++)
 			fire[i].live=false;
 			
 		for(int i=0;i<boomNum;i++){
 			boom[i].live=false;    
 			boom[i].boom_flag=true;
 		}
 		laser.setVisible(false);
 		laser.live=false;
 		bd=5;
	}
	
	public void GameOver(){
		g.drawImage(screen,0,0,20);
		g.setColor(255,255,255);
		g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_LARGE));
		g.drawString("Game Over" ,40,60,20);
		lm.setViewWindow(0,0,0,0);
		lm.paint(g,0,0);
		flushGraphics();
		Stop();
		setGameOverFlag(true);
	 }
	 		
 	public void CreateWeapon() {
 		if(gun==true && dir==0) {
 			weapon.move(distance,0);
 		    if(distance%5==0)
 		    	weapon.nextFrame();
 		    weapon.setTransform(0);
 		    distance=distance+1;  
 		}else if(gun==true && dir==1) {
 		      weapon.move(-distance,0);
 		      if(distance%5==0)
 		      	 weapon.nextFrame();
 		      weapon.setTransform(2);
 		      distance=distance+1;  
 		}
 		if(Math.abs(spaceman.getX()-weapon.getX())>=170){
 		      gun=false;
 		      weapon.setPosition(-40,-70);       
 		}
 		     
 	}
 	
 	public void CreateElec() {
    	for(int i=0;i<elecNum;i++) { 
    		if(elec[i].live) {
    		   elec[i].elec_attack();
    		   if(elec[i].collman(spaceman)){
    	   	   	 bd--;
    	   	   }   
    		}else{
    	  	   if(Math.abs(r.nextInt()%200)<=5)
    	     	  elec[i].live=true;	
    		}
    	}
    }
 	 
 	 public void CreateTongs() {
 	 	for(int i=0;i<tongsNum;i++) {
 	 		if(tongs[i].live==true) {
 	        	switch (r.nextInt()%20) {
					case 0:		
					   	tongs[0].tongs_attack();
					   	break;
					case 1:
						tongs[1].tongs_attack();
				       	
				        break;
					case 2: 
				       	tongs[2].tongs_attack();
				    	break;
				    }
				if(tongs[i].collman(spaceman)) {
				    bd--;				       
				 }       
		  	}else if(i<1){
		  		tongs[0].setPosition(252,80);
 			   	tongs[1].setPosition(960,60);
 			   	tongs[2].setPosition(1440,80);	 		          	 	 	
 			 	tongs[0].live=true;
 			 	tongs[1].live=true;
 			 	tongs[2].live=true;
 			 	tongs[0].setinit(tongs[0].getX(),tongs[0].getY());
 		   	 	tongs[1].setinit(tongs[1].getX(),tongs[1].getY());
 		     	tongs[2].setinit(tongs[2].getX(),tongs[2].getY());
 		  }
 	   }   				
 	}
 	 
    public void CreateTank(){
     for(i=0;i<tankNum;i++) {	
    	if(tank[i].live==true ) {
    	   	  tank[i].tank_attack(bg);
    	   	  if(tank[i].collman(spaceman)){
    	   	  	 bd--;
    	   	  }else if(tank[i].collGood(weapon)){
    	   	  	tank[i].setVisible(false);
    	   	  	weapon.setPosition(-250,-70);
    	   	  	gun=false;
    	   	  	score=score+500;
    	   	  }	 
    	}else if(i<1){
    	   switch (level) {
    	   	 case 1:
    	   	 	tank[0].setPosition(485,135);
 			   	tank[1].setPosition(860,135);
 			   	tank[2].setPosition(1365,135);
 			   	break;
 			 case 2:
 			   	tank[0].setPosition(530,115);
 			   	tank[1].setPosition(856,115);
 			   	tank[2].setPosition(1150,115);
 			   	break;
 			 case 3:
 			   	tank[0].setPosition(295,115);
 			   	tank[1].setPosition(970,135);
 			   	tank[2].setPosition(1250,115);
 			   	break;

⌨️ 快捷键说明

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