📄 wallmanager.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 + -