我正在 embarcadero 的 Firemonkey XE2 平台上创建(用于学习目的)一个 2D 游戏。就游戏领域的视觉表现而言,这是一款类似于太空侵略者的游戏,但要复杂得多。
我正在尝试生成动画敌人。我创建了一个模板 TImage 并为其分配了一个带有六张图片的 BitmapListAnimation。然后我只是使用 Clone() 克隆它。这是克隆代码:
virtual void CreateMe(TForm* pForm);
void CBaseEnemy::CreateMe(TForm *pForm)
{
TImage* pSource = dynamic_cast<TImage*>(this->pToClone);
pSource->Visible = true;
TImage* pDest = dynamic_cast<TImage*>(pSource->Clone(pForm));
pDest->Parent = pForm;
TBitmapListAnimation* pAnimSource = dynamic_cast<TBitmapListAnimation*>(pForm->FindComponent("BitmapListAnimation1"));
pAnimSource->Parent = pDest;
pAnimSource->Start();
TBitmapListAnimation* pAnimDest = dynamic_cast<TBitmapListAnimation*>(pAnimSource->Clone(pForm));
}
它可以工作,只是非常复杂,您能否建议一种克隆整个模板的方法(一个组件,例如 TImage 及其所有子组件)?