我想制作一款游戏,玩家可以将物品放置在现有的游戏地图中,如墙壁或不同类型的炮塔。
游戏地图包含两件事:
我该如何处理?任何提示,使用方法的类结构都会很好。
答案 0 :(得分:1)
主游戏地图可能是一个瓷砖网格。然后你的炮塔的宽度和高度可以是瓦片大小的倍数,占据一定数量。
例如,2x2炮塔会占用四个瓦片。限制炮塔/墙壁到瓦片而不是给它们任意位置和长度是有限的,但它可以让你更快地碰撞检测。
然后你可以:
class Tile
{
public Building WhatIsConstructedHereIfAnything;
}
和
class Building
{
public List<Tile> TilesOccupiedByThisBuilding;
}
然后,您可以通过查看建筑物列表来更新建筑物,并仅通过查看附近的瓷砖来处理碰撞。
答案 1 :(得分:0)
向对象类添加Rectangle
,并使用其Width
和Height
属性。
class YourObject
{
public Rectangle Rectangle;
public YourObject(Vector2 position, int width, int height)
{
Rectangle = new Rectangle((int)position.X, (int)position.Y, width, height);
}
public void Draw()
{
spritebatch.Draw(Texture, Rectangle, Color);
}
}