0

我想制作一款游戏,玩家可以在现有游戏地图中放置对象,例如墙壁或不同类型的炮塔。

游戏地图包含两件事:

  • 所以基本上是玩家可以在其中走动的主要游戏地图,存在的树木、墙壁和水已经存在。
  • 以及玩家可以在主游戏地图中放置的对象(具有特定的高度和宽度)(当他得到木头、金子(当玩家杀死怪物等)时)。

我应该如何处理这个?任何提示,带有方法的类结构都会很高兴。

4

2 回答 2

1

主游戏地图可以是瓷砖网格。然后你的炮塔的宽度和高度可以是瓦片大小的倍数,并占据一定数量的瓦片。

例如,一个 2x2 的炮塔将占据四个瓷砖。将炮塔/墙限制在瓷砖上而不是给它们任意位置和长度是有限制的,但它可以让您更快地检测碰撞。

然后你可以有:

class Tile
{
   public Building WhatIsConstructedHereIfAnything;
}

class Building
{
   public List<Tile> TilesOccupiedByThisBuilding;
}

然后,您可以通过查看建筑物列表来更新建筑物并仅通过查看附近的瓷砖来处理碰撞。

于 2013-11-06T08:55:23.610 回答
0

将 a 添加Rectangle到您的对象类中,并使用它的WidthHeight属性。

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);
    }    
}
于 2013-11-05T14:38:38.497 回答