好的,我可以说我的cPlayer
类继承自cOrganism
,继承自cEntity
。现在我准备扩展我的cPlayer
课了,我想为我的播放器添加动画。
A。)创建一个cAnimation
类并从中继承cPlayer
?
B。)创建一个cAnimation
类并将其作为参数传递给cPlayer
?
C。)还有别的吗?
答案 0 :(得分:4)
这取决于CAnimation
的设计方式。通常,继承在父类和子类之间形成“Implements”或“Is a”关系。
例如,cPlayer
应该继承cAnimation
你想要的任何一个:
cPlayer
到实施界面 cAnimation
cPlayer
<{1}}。似乎对我没有任何意义。 “cAnimation”不是你给界面的名字,玩家不是动画。
但这只是基于你的命名。您的实际设计将取决于控制动画的内容,它与对象的交互方式(可能需要cAnimation
界面?)等之间的关系。
答案 1 :(得分:2)
我会使用composition:将cAnimation
类型的对象作为cPlayer
的成员。这里的许多问题都与这个问题有关(继承与多态)。答案很好的是here
答案 2 :(得分:0)
我宁愿认为假设的cAnimation
类会包含一系列骨骼位置,并且可能存在多个cPlayer
的动画(步行,跑步,跳跃等) ),因此一组cAnimation
s将成为cPlayer
的成员。