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

📄 rectanglelayer.java

📁 J2ME手机游戏:是男人就下100层,根据FLASH游戏改写
💻 JAVA
字号:
package src;

import java.io.IOException;
import java.util.Random;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.Sprite;

public class RectangleLayer {
	
	public int[] recTypeRecoder = {0,0,0,0,0,0,0};
	private  Sprite[] Rectangle = new Sprite[7];
	private final int RECTANGLE_WIDTH = 60;
	private final int RECTANGLE_HEIGHT = 10;
	private final int RECTANGLE_TYPE1 = 1;
	private final int RECTANGLE_TYPE2 = 2;
	private final int RECTANGLE_TYPE3 = 3;
	private final int RECTANGLE_TYPE4 = 4;
	private final int RECTANGLE_TYPE5 = 5;
	private final int RECTANGLE_TYPE6 = 6;
	public static boolean hasSounded = false;
	private Image image = null;
	private Random rnd = new Random();

	public RectangleLayer(LayerManager layerManager)
	{
		
		try {
			image = Image.createImage("/res/rectangle.png");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		for(int i = 0;i < Rectangle.length;i++)
		{
			Rectangle[i]= new Sprite(image,RECTANGLE_WIDTH,RECTANGLE_HEIGHT);
			//Rectangle[i].defineCollisionRectangle(-5,-5, 70, 30);
			layerManager.append(Rectangle[i]);
		}
		initLocation();
	       
	}
	
	public void initLocation()
	{
		
		for(int i = 0;i < Rectangle.length;i++)
			{
			int type = rnd.nextInt(8)+1;
			setRandomSprite(Rectangle[i],type);
		    recTypeRecoder[i] = type;              //记录类型
			int x = 10+i*rnd.nextInt(20);          //初始化位置
			int y = 100+i*40;
			Rectangle[i].setPosition(x, y);
			//System.out.println(type+"\n");
			}
		}
	
	public  void update()
	{
		for(int i = 0;i < Rectangle.length;i++)
		{
			Rectangle[i].move(0,-GameMIDlet.MOVE_UP_SPEED);
			Rectangle[i].nextFrame();
			if(Rectangle[i].getY() < 40)
			{
				int type = rnd.nextInt(8)+1;
				this.setRandomSprite(Rectangle[i], type);
				recTypeRecoder[i] = type;      //记录类型
				//System.out.println(type+"\n");
			}
			
		}
	}
	
	public void setRandomSprite(Sprite sprite,int type)   //随机确定楼梯样式
	{
		
		int x = 10+rnd.nextInt(160);
		int y = GameMIDlet.CANVAS_HEIGHT+30;
		switch(type)
		{
			case RECTANGLE_TYPE1:                //30%几率显示图形1
			case 7:
			case 8:
			{
				sprite.setFrameSequence(new int[]{0});
				sprite.setPosition(x, y);
				break;
				
			}
			case RECTANGLE_TYPE2:
			{
				sprite.setFrameSequence(new int[]{1,2,3,4});
				sprite.setPosition(x, y);
				break;
			}
			case RECTANGLE_TYPE3:
			{
				sprite.setFrameSequence(new int[]{5,6,7,8});
			    sprite.setPosition(x, y);
			    break;
			   
			}
			case RECTANGLE_TYPE4:
			{
				sprite.setFrameSequence(new int[]{12});
				sprite.setPosition(x, y);
				break;
			}
			case RECTANGLE_TYPE5:
			{
				sprite.setFrameSequence(new int[]{15});
				sprite.setPosition(x, y);
				break;
			}
			case RECTANGLE_TYPE6:
			{
				sprite.setFrameSequence(new int[]{19});
				sprite.setPosition(x, y);
				break;
			}
		    default :
			    break;
		}
	}
 
    public void collidesAction(int type,Sprite player,Sprite rectangle)
    {
    	switch(type)
		{
			case RECTANGLE_TYPE1:                
			case 7:
			case 8:
			{
				if(!hasSounded)
					GameMIDlet.soundControl.typeSound1();
				hasSounded = true;
				break;
			}
			case RECTANGLE_TYPE2:
			{
				if(!hasSounded)
					GameMIDlet.soundControl.typeSound2();
				hasSounded = true;
				player.move(-2, 0);
				break;
			}
			case RECTANGLE_TYPE3:
			{
				if(!hasSounded)
					GameMIDlet.soundControl.typeSound2();
				hasSounded = true;
				player.move(2, 0);
				break;
			}
			case RECTANGLE_TYPE4:
			{
				if(!hasSounded)
					GameMIDlet.soundControl.typeSound5();
				hasSounded = true;
			    rectangle.setFrameSequence(new int[]{12,13,14});
				
				player.move(0, 2);
				
				break;
			}
			case RECTANGLE_TYPE5:
			{
				if(!hasSounded)
					GameMIDlet.soundControl.typeSound3();
				hasSounded = true;	
			    rectangle.setFrameSequence(new int[]{15,16,17,18});
				
				player.move(0, -25);
				
				break;
			}
			case RECTANGLE_TYPE6:
			{
				if(!hasSounded)
					GameMIDlet.soundControl.typeSound4();
				hasSounded = true;
				player.setFrameSequence(new int[]{17});
				GameMIDlet.PLAYER_LIFE -= 3;
				break;
			}
		    default :
		    	
		}
    }
    
    public Sprite[] getSprites()
    {
    	return Rectangle;
    }
}

⌨️ 快捷键说明

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