我正在Google App Engine上使用app-engine-patch在Django中创建一个转弯和基于文本的策略游戏。简化的概念是,每个玩家可以构建几个不同的单位和建筑物,以提高他们的基础并与其他玩家争夺积分。
我的问题涉及Django模型的设计,在我看来,具有不同攻击力,生命等的建筑物和单位应该是他们自己的模型,如下:
class Unit(db.Model):
name = db.StringProperty()
type = db.ReferenceProperty(UnitType)
targets = KeyListProperty(UnitType)
attack = db.IntegerProperty()
life = db.IntegerProperty()
price = db.IntegerProperty()
我的问题是如何最简单地设置特定单位/建筑物的玩家数量。作为一个例子,玩家应该可以购买15架飞机。
然后,我可以将“飞机”设置为播放器模型中的IntegerProperty,并在获得攻击力和飞机寿命时使用单位名称作为标识符。然而,这不是一个非常动态的设计,因为玩家模型不知道单位“飞机”是否实际存在。我希望玩家模型能够在某种程度上反映现有的单元/建筑模型。
这是我第一次尝试基于网络的游戏,所以我可能完全偏离轨道,是否有人对此有所了解?有没有更好的方法呢?
答案 0 :(得分:2)
如何从Unit
类派生?
class Airplane(Unit):
owner = db.ReferenceProperty(User)
这样,根据documentation
,您的User
类会自动获取airplane_set集合(确实是查询)
修改强>
或者你可以像这样实现Airplane类:
class Airplane(db.Model):
unit = ReferenceProperty(Unit)
amount = IntegerProperty()
user = db.ReferenceProperty(User)