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

📄 wallmanager.java.bak

📁 一个用Java开发的射击类游戏
💻 BAK
字号:
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.game.Sprite;

public class WallManager
{
	private int			currentWallNumber = 0;
	private int			wallArray[] = null;
	private Sprite		wallSpriteArray[] = null;
	private int			actorX, actorY;

	public WallManager(Image tempWallImage, int tempMaxWallNumber)
	{
		wallArray = new int[War.H_NUMBER*War.V_NUMBER];
		for (int i = 0; i < War.H_NUMBER*War.V_NUMBER; i++)
		{
			wallArray[i] = -1;
		}
		wallSpriteArray = new Sprite[tempMaxWallNumber];
		
		//初始化墙
		Sprite tempSprite = null;
		for (int i = 0; i < tempMaxWallNumber; i++)
		{
			tempSprite = new Sprite(tempWallImage, War.ACTOR_WIDTH, War.ACTOR_HEIGHT);
			wallSpriteArray[i] = tempSprite;
		}
	}
	public void addWall(int tempCurrentX, int tempCurrentY)
	{
		//System.out.println("墙添加……");
		if (wallArray[(tempCurrentY) * War.H_NUMBER + tempCurrentX] == -1)
		{
			if (currentWallNumber == War.MAX_WALL_NUMBER)
			{
				return;
			}
			wallArray[(tempCurrentY) * War.H_NUMBER + tempCurrentX] = currentWallNumber;
			currentWallNumber++;
			//System.out.println("墙添加成功");
		}
		else
		{
			delWall(tempCurrentX, tempCurrentY);
		}
	}
	public void delWall(int delX, int delY)
	{
		currentWallNumber--;
		wallArray[delX + delY * War.H_NUMBER] = -1;
		//System.out.println("墙删除成功");
	}
	public void updateWall(Graphics g)
	{
		if (currentWallNumber == 0)
		{
			//System.out.println("墙0个,无需更新");
			return;
		}
		//System.out.println("有墙,开始更新");
		//更新墙
		int		tempId = 0;
		for (int i = 0; i < War.V_NUMBER; i++)
		{
			for (int j = 0; j < War.H_NUMBER; j++)
			{
				if (wallArray[i * War.H_NUMBER + j] != -1)
				{
					wallSpriteArray[tempId].setPosition(War.WAR_FIELD_LEFT + j * War.ACTOR_WIDTH, War.WAR_FIELD_TOP + i * War.ACTOR_HEIGHT);
					wallSpriteArray[tempId].paint(g);
					tempId++;
				}
			}
		}
		//System.out.println("墙更新成功");
	}
	public boolean collidesWith(Sprite tempActorSprite)
	{
		int		tempId = 0;
		for (int i = 0; i < War.V_NUMBER; i++)
		{
			for (int j = 0; j < War.H_NUMBER; j++)
			{
				if (wallArray[i * War.H_NUMBER + j] != -1)
				{
					if (wallSpriteArray[tempId].collidesWith(tempActorSprite, false))
					{
						return true;
					}
					tempId++;
				}
			}
		}
		return false;
	}
	public void setActorPosition(int tempActorX, int tempActorY)
	{
		actorX = tempActorX;
		actorY = tempActorY;
	}
	public int getActorX()
	{
		return actorX;
	}
	public int getActorY()
	{
		return actorY;
	}
}

⌨️ 快捷键说明

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