我正在(出于学习目的)在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这样的Component及其所有子元素)?
最佳答案
刚刚发布的Embarcadero博客条目涵盖了以下内容:blog