1

embarcadero の Firemonkey XE2 プラットフォームで (学習目的で) 2D ゲームを作成しています。これは、ゲーム フィールドの視覚的表現という点ではスペース インバンダーに似たゲームですが、はるかに複雑です。

アニメ化された敵をスポーンしようとしています。テンプレート TImage を作成し、それに 6 つの画像を含む 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 などのコンポーネントとそのすべての子) を複製する方法を提案できますか?

4

1 に答える 1

1

リリースされたばかりのエンバカデロのブログ エントリには、次のような内容が含まれています

于 2013-02-07T16:06:49.097 に答える