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

📄 gamescreen.java

📁 一个JAVA程序,可以直接运行,也可以进行调试.
💻 JAVA
📖 第 1 页 / 共 4 页
字号:

 //创建日期 2005-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 + -