我正在(出于学习目的)在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

10-08 00:36