Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.09.11;
Скачать: [xml.tar.bz2];

Вниз

DELPHIX   Найти похожие ветки 

 
Vin_Ghost   (2003-05-13 23:10) [0]

Привет! У меня вопрос:
Например, у меня есть класс:

type
THero = class(TImageSprite)
protected
procedure DoCollision(Sprite: TSprite; var Done: Boolean); override;
procedure DoMove(MoveCount: Integer); override;
public
Constructor Create(AParent: TSprite); Override;
end;

и я создал с помощью этого конструктора с десяток спрайтов:

constructor THero.Create(AParent: TSprite);
Begin
inherited Create(AParent);
Image := form1.DXImageList1.Items.Find("Asterix");
Width := Image.Width;
Height := Image.Height;
X := random(100); ( 200) Привет! У меня вопрос:
Например, у меня есть класс:

type
THero = class(TImageSprite)
protected
procedure DoCollision(Sprite: TSprite; var Done: Boolean); override;
procedure DoMove(MoveCount: Integer); override;
public
Constructor Create(AParent: TSprite); Override;
end;

и я создал с помощью этого конструктора с десяток спрайтов:

constructor THero.Create(AParent: TSprite);
Begin
inherited Create(AParent);
Image := form1.DXImageList1.Items.Find("Asterix");
Width := Image.Width;
Height := Image.Height;
X := random(100);
Y := random(200);
Z := 2;
AnimStart := 0;
AnimCount := 6;
AnimLooped := True;
AnimSpeed := 15/1000;
End;

Как мне потом эти спрайты различать и обращаться к ним програмно? Ведь должны же эти экземпляры как различаться?
срочно нужно


 
Плохой человек   (2003-05-13 23:55) [1]

Добавь там свойство Name.


 
Михаил Бесчетнов   (2003-05-14 02:48) [2]

Можно (и, вероятно, нужно) создать коллекцию на основе TList, куда добавлять все создаваемые объекты. Каждому объекту даешь имя (или код какой нибудь). Потом у коллекции делаешь функцию типа "function GetByName(Value: string): THero;", которая бы искала в базе объект с нужным именем. После этого перестаешь думать и по необходимости обращаещся - "HeroBase.GetByName("Termite")"


 
Владимир Васильев   (2003-05-14 11:23) [3]

Всё очень просто:

constructor THero.Create(AParent: TSprite);


Если родителем (AParent) будет SpriteEngine.Engine то он и будет
следить за всеми своими спрайтами, например:
SpriteEngine.Dead - удалить недействительные объекты;
SpriteEngine.Move - переместить
SpriteEngine.Draw - draw Sprites


............
For i:=1 to HeroCountMax do
With THero.Create(MainForm.SpriteEngine.Engine) do
..................

тогда, например :


procedure Attack;
Var
i : integer;
begin
// need optimiztion
With MainForm do
begin
For i:=0 to SpriteEngine.Engine.AllCount-1 do
if (SpriteEngine.Engine.Items[i] is THero)
( SpriteEngine.Engine.Items[i]) Всё очень просто:

constructor THero.Create(AParent: TSprite);


Если родителем (AParent) будет SpriteEngine.Engine то он и будет
следить за всеми своими спрайтами, например:
SpriteEngine.Dead - удалить недействительные объекты;
SpriteEngine.Move - переместить
SpriteEngine.Draw - draw Sprites


............
For i:=1 to HeroCountMax do
With THero.Create(MainForm.SpriteEngine.Engine) do
..................

тогда, например :


procedure Attack;
Var
i : integer;
begin
// need optimiztion
With MainForm do
begin
For i:=0 to SpriteEngine.Engine.AllCount-1 do
if (SpriteEngine.Engine.Items[i] is THero)
then THero(SpriteEngine.Engine.Items[i]).doAttack;
end;
end;






Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2003.09.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
14-33779
Marser
2003-08-23 02:20
2003.09.11
Именинники 23 августа


14-33749
Marser
2003-08-20 21:30
2003.09.11
Довольно полный список


3-33525
ЕвгенийЕ
2003-08-19 13:53
2003.09.11
Связанное поле, но не LookupDataSet через индексы?


1-33565
11111
2003-08-28 17:12
2003.09.11
Редактировать строковый ресурс...


3-33506
Duncan
2003-08-21 15:11
2003.09.11
concurrent update





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский