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

📄 gamescreen.java

📁 基于J2ME的手机游戏---览桥风光的开发
💻 JAVA
📖 第 1 页 / 共 4 页
字号:

//创建日期 2006-4-25
//游戏窗口
//在这个类里检测碰撞。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
//。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
//。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.util.*;
public class gameScreen extends GameCanvas implements Runnable,CommandListener
{   
	private Form al;
	public LayerManager lm,lm1;
	TiledLayer b1;
	int height=getHeight();
   int bosscolor=0;
   int sbosscolor=0;
   int sbz=0;//小BOSS AI相关标志位
   int sbmove=0;//小BOSS移动标志位置0不动1上2下3左4右
   int sfire=0;//SBOOS开火
   int smovebz=0;//SBOSS移动标志
   int sbpzbz=0;//SBOOS与玩家子弹碰撞标志
   int slife=0;//sboss生命
   int sbo=0;//sboss和飞机碰撞后玩家飞机自动出现的标志位
   int drawslife=0;//画SBOSS生命标志位
   int lr=0;
   int drawadd=0;//增加一个飞机画个标志  
   int pzbz=0;//碰状标记,解决中途被挂掉后的碰撞BUG
   int pzbzover=0;//解决过关后的敌机器 仍然出现问题	
   int  playlife=-1;//玩家延续生命标志位
   int bosslife=0;//bosslife
   int inputno=0;//键盘输入标志位
   int position=0;
   int j1b=0;//CASE3语句里J1具有跟踪能力的子弹
   int jbsz=-1;//boss子弹标志
   int sbsz0=-1;//sboss左子弹标志
   int sbsz1=-1;//sboss右子弹
   int sbsz2=-1;//SBOSS上子
   int sbsz3=-1;//SBOSS下子弹
   int planepo;//飞机下方参照坐标
   int planepoup;//飞机上方参照坐标
   int kkk;
   int gz=0;//上跟踪标志位置
   int gzks=0;//跟踪开始标志位
   int jiangli=0;//奖励标志位
   int jplaneno; 
   int cloundno=0;
   int right=0;//BOSS移动标志位,初始化向右移动
   int left=1;
   int boss=0;
   int over=0;
	int ai=0;
	int planert=-1;//表示是否三次机会都没了
	int supermen=0;//玩家挂后短暂无敌
	int overcmd=0;
	int bossover=0;
	int jpb=-12;//敌人子弹是否运行标志位
	int aipp=0;
   int jbz=0;
   int cloudposition; 
   Random aik=new Random();
   Random aip=new Random();
   Random aicloud=new Random();
	int jb[]=new int[5];//敌人飞机,白云出现标志
   int playerno=3;//玩家剩余飞机标志,3,2,1三次,0就是挂了
	private mybullets[] huokebullet=new mybullets[9];
   private Sprite jbullet0,jbullet1,jbullet2,bossbullet0,bossbullet1,bossbullet2;
   private Sprite cloud[]=new Sprite[5];//白云彩
   private MenuScreen ms;
	private Sprite c1,sboss,cboss,j0,j1,j2,boss1;  //2D时为玩家飞机
	private lzhhdm midlet;
	int s1=0;//无敌时间1
	int s2=65;//无敌时间2
	int s3=0;//无敌时间3
	int row2;
	int row;
	int planecolor=0;//自己的飞机无敌的时候边红
	int planecoco=0;//变红控制
	public int by1;
	public int y1;
	
	public gameScreen (lzhhdm midlet)
	{
		super(true);
		System.gc();
		this.midlet=midlet;
	    addCommand(new Command("暂停",Command.BACK,1));
   	setCommandListener(this);
       lm=new LayerManager();
   	c1=new Sprite(img("/pic/MyPlaneFrames.png"),24,24);//,getWidth(),getHeight()+1000);
   	cboss=new Sprite(img("/pic/boss.png"),65,50);//长 *宽
   	jbullet0=new Sprite(img("/pic/bullet.png"),6,6);
   	jbullet1=new Sprite(img("/pic/bullet.png"),6,6);
   	jbullet2=new Sprite(img("/pic/bullet.png"),6,6);
   	bossbullet0=new Sprite(img("/pic/bullet.png"),6,6);
   	bossbullet1=new Sprite(img("/pic/bullet.png"),6,6);
   	bossbullet2=new Sprite(img("/pic/bullet.png"),6,6);
       sboss=new Sprite(img("/pic/smallboss.png"),65,50);
   	b1=createBackGround();//创建背景
   	c1.setPosition(getWidth()/2,row2+getHeight()-25);//精灵的起始位置row2+getHeight()-25=1655
   	//精灵是 精灵的坐标,而下面的Y1是画屏幕的位置
   	//System.out.println("ffffffffffff");
   	planepoup=row2;//屏幕上方边界
   	planepo=row2+getHeight();//屏幕下方边界 
		j0=new Sprite(img("/pic/jplane2.png"),24,22);//宽24,高22
       j1=new Sprite(img("/pic/jplane2.png"),24,22);
       j2=new Sprite(img("/pic/jplane2.png"),24,22);
       kkk=getHeight()/8;
	    
	    cboss.setVisible(false);
	  
	    //aipp=3;
	    ai=aik.nextInt()%4;
	    if (ai<0)
	       ai=-ai;
	    aipp=aip.nextInt()%3;
	    if(aipp==0)//动态确定下一组敌机位置的参数
	    {
	    	 aipp=aip.nextInt()%3;
	    }
	      try
		{
       	for(int i=0;i<=4;i++)
       	{
       		cloud[i]=new Sprite(img("/pic/cloud1.png"),16,16);
   		    lm.append(cloud[i]);
  	    	}
        }catch(Exception e)
		 {
        	System.out.println("cloud");
	     }
       lm.append(cboss);
       lm.append(j0);
	    lm.append(j1);
	    lm.append(j2);
	    lm.append(bossbullet0);
	    lm.append(bossbullet1);
	    lm.append(bossbullet2);
	    lm.append(jbullet0);
	    lm.append(jbullet1);
	    lm.append(jbullet2);
	    lm.append(sboss);
       jb[0]=1;
       jb[1]=1;
       jb[2]=1;
       jb[3]=1;
     
 	    try
		{
   		for(int i=0;i<9;i++)
   		{
   			huokebullet[i]=playerbullet("/pic/bullet.png");
   		}
        }catch(Exception e){}
        
        try
		 {
           for(int i=0;i<=8;i=i+3)
    	    {
   		   huokebullet[i].no=1;//ok
   		   huokebullet[i].score=0;
   	  }
        }catch(Exception e){System.out.println("ffffffffffffff");}
   	
        
       for(int i=0;i<9;i++)
       {
   		lm.append(huokebullet[i]);
   	}
   	lm.append(c1);
   	lm.append(b1);
	}

	private Image img (String pic)
	{
		Image img=null;
		try
		{
			img=Image.createImage(pic);
		}catch(Exception exp)
		{
			System.out.println(exp);
		}
		return img;
	}
	
	private mybullets playerbullet(String pic)//,int px,int py,int total ,int width,int height)
	{
		Image img=null;
		try
		{
			img=Image.createImage(pic);
		}catch(Exception exp)
		{
			System.out.println(exp);
		}
		return new mybullets(img,6,6,21,getWidth(),getHeight());//
	}

	public TiledLayer createBackGround()
	{
		Image img=null;
		try
		{
			img=Image.createImage("/pic/beijing.png");
			
		}catch(Exception exp)
		{
			System.out.println("layer create image");
		}
	
	TiledLayer tiledLayer=new TiledLayer(50,200,img,16,16);
	int[] map1=
		
	{               3,1,1,3,3,3,1,3,3,3,3,3,3,2,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			1,3,1,1,1,1,1,1,1,1,1,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,2,4,
	                3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			1,1,1,1,1,1,1,1,1,3,1,3,3,4,1,
			1,1,1,1,1,1,1,1,1,3,1,3,3,4,1,
			1,1,1,1,1,1,1,1,1,3,1,3,3,4,1,
			1,1,1,1,1,1,1,1,1,3,1,3,3,4,1,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,
			2,2,2,3,3,3,3,3,3,3,3,3,3,3,4,
			5,5,2,3,3,3,3,3,3,3,3,3,3,3,4,
			5,7,2,3,3,3,3,3,3,3,3,3,3,3,4,
			5,5,2,10,10,10,10,10,1,3,1,3,3,4,1,
			5,2,2,1,1,1,1,1,1,3,1,3,3,4,1,
			5,5,2,1,1,1,1,1,1,3,1,3,3,4,1,
			5,2,2,1,1,1,1,1,1,3,1,3,3,4,1
	};
	
	for(int i=0;i<map1.length;i++)//注意 此步,更改后背景才能生效  
	{
	  	 int  column=i%15;//15代表有多少列,改变地图后相应也要改变
	  	 row=(i-column)/15;//同上一起改变
	     tiledLayer.setCell(column,row,map1[i]);		
	}
	row2=(row+1)*16-getHeight();//地图总的长度,减是因为要留一个屏幕的可视区域
	y1=-row2;
	System.gc();
	return tiledLayer;
   }
	boolean conti=true;
	int rate=50;
	public void run()
	{
		long st=0;
		long et=0;
		Graphics g=getGraphics();
		int l=1350;
	    while(conti)
		{  
			st=System.currentTimeMillis();
			input();
          //玩家子弹 
			if(huokebullet[0].isAlive(0))
			{
				huokebullet[0].no--;
			    if(huokebullet[0].no>0)
			    {  
			    	huokebullet[0].newposition(huokebullet,0,3,j0,j1,j2,cboss,img("/pic/explosion.png"));
				   
			     }
			    if(huokebullet[0].no<=0)
			     {	//隐藏子弹
			     	huokebullet[0].setAlive(0);           
		            huokebullet[0].clean(0,huokebullet);
   		      }
			}
		    if(huokebullet[3].isAlive(3))
		    {
		    	huokebullet[3].no--;
				if(huokebullet[3].no>0)
				{  
					huokebullet[3].newposition(huokebullet,3,3,j0,j1,j2,cboss,img("/pic/explosion.png"));
				    
			     }
			    if(huokebullet[3].no<=0)
			    {	//隐藏子弹
			    	huokebullet[3].setAlive(3);           
			        huokebullet[3].clean(3,huokebullet);
			    }
		    }
	       if(huokebullet[6].isAlive(6))
	       {
	        	huokebullet[6].no--;				
		        if(huokebullet[6].no>0)
		        {  
		        	huokebullet[6].newposition(huokebullet,6,3,j0,j1,j2,cboss,img("/pic/explosion.png"));	       
		        }
		        	if(huokebullet[6].no<=0)

⌨️ 快捷键说明

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