我正在制作像游戏一样的模拟游戏,现在我正在试图弄清楚我将如何构建我的对象。如何正确地创建游戏对象
现在我想创建一个名为游戏物体类的伪低于
public class GameObject {
name:String
width:int
height:int
}
这样我就可以创建灌木,树木和建筑物的对象。但后来我开始思考。如果我想创建多个相同类型的建筑物和树木,该怎么办?我将不得不继续制作GameObject的实例并给它一个新的名称,高度和宽度。这些属性必须是相同的值才能复制一个对象。这似乎有点乏味。然后我想,也许这不是正确的路。所以我在想,我将不得不延长游戏物体像下面
public class Tree extends GameObject{
birdHouse:Boolean
}
public class Building extends GameObject{
packingGarage:Boolean
stories:Number
}
public class House extends GameObject{
garage:Boolean
stories:Number
}
现在这样,我就可以创建房子,还是树的多个实例,而不产生指定它确实是一个房子或树的性质。这看起来更合乎逻辑,但同时它似乎分配更多的内存,因为我正在创建更多的类。
我只需要知道处理像这样的对象的最佳实践。如果有人能帮我解决这个问题。同样,如果你知道任何资源来减少游戏或任何应用程序的负载的最佳做法。我也想使用接口。第二个概念似乎更合理,我在想,我父执行类似下面
public class GameObject implement IGameObject {
name:String
width:int
height:int
}
现在这样,我可以创建具有松散接受的方法的类可以接受任何类型的游戏对象继承一个接口。
Selector.loadObject(gObject:IGameObject);
取决于它是什么类型(即树,建筑物,房子),我可以使用一个case语句来找出哪些类型,它和相应的评估。
我也创建了一个Tile Class,它将通过loadObject方法。它也将是GameOject类的一个孩子。如果case语句发现它是Tile类型,它会根据鼠标结束的情况高亮显示任何Tile。
我的第二个问题是,如果一个类继承了一个实现接口的类,那么该类的子类也被认为是一个IGameObject。还是必须直接实现该接口?
所有这些听起来像是我正朝着正确的方向前进,就组织而言。
感谢您的帮助,谢谢你们!