Я создаю (для учебных целей) 2D-игру на платформе Embarcadero Firemonkey XE2. Это игра, похожая на космических захватчиков с точки зрения визуального представления игрового поля, но значительно более сложная.
Я пытаюсь порождать оживленных врагов. Я создал шаблон 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 вместе со всеми его дочерними элементами)?
Только что опубликованная запись в блоге Embarcadero: блог
Других решений пока нет …