在 C++ Firemonkey 平台中克隆对象

Posted

技术标签:

【中文标题】在 C++ Firemonkey 平台中克隆对象【英文标题】:Cloning objects in C++ Firemonkey platform 【发布时间】:2013-01-09 10:44:10 【问题描述】:

我正在 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 连同它的所有孩子)吗?

【问题讨论】:

【参考方案1】:

刚刚发布的 Embarcadero 博客文章涵盖了以下内容:blog

【讨论】:

哇好久没来了,但这正是我当时一直在寻找的,谢谢!

以上是关于在 C++ Firemonkey 平台中克隆对象的主要内容,如果未能解决你的问题,请参考以下文章

FireMonkey 继承Frame存在的问题

使用 FireMonkey 及其跨平台,我应该在哪里存储我的应用程序数据?

[FireMonkey]获取设备(平台)类型

如何在 C++ 中克隆对象?或者还有其他解决方案吗?

如何使用 FireMonkey 创建托盘图标?

[原创] Firemonkey 解决 Canvas 几何绘图质量问题(移动平台)