Форум: "Игры";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
ВнизРабота с памятью Найти похожие ветки
← →
ПсихЪ_задумчивый (2004-07-22 15:06) [40]Пока читал - запутался окончательно... (:
Так что нижеследующее скорее всего к ветке не относится.
1. Каждая картинка загружается один раз в массив спрайтов SprArr класса TSprite. Класс пишется вручну.
SetLength( SprArr, SprCount ); // SprCount - число спрайтов
for i := 0 to SprCount - 1 do
begin
SprArr[i] := TSprite.Create();
SprArr.LoadFromFile( IntToStr( i )+".bmp" ); // это к примеру
end;
2. Когда нужно сделать много ракет, то мы делаем:
SetLength( RocetArr, RocetCount );
for i := 0 to RocetCount - 1 do
begin
RocetArr[i] := TRocet.Create(); // Тут можно сразу параметры задать
RocetArr[i].SpritePointer := @SprArr[ROCET_SPRITE_NUMBER];
end;
При отрисовки ракет:
for i := 0 to RocetCount - 1 do
// Если у тебя SpritePointer : TPointer;
TSprite( RocetArr.SpritePointer ).Draw( RocetArr.SprX, RocetArr.SprY );
// Если SpritePointer : PSprite; (PSprite : ^TSprite), тогда
RocetArr.SpritePointer.Draw( RocetArr.SprX, RocetArr.SprY );
Вот, вряд ли это кому-нибудь пригодится. А про спрайты ещё добавлю, что удобнее делать единый интерфейс управления массивом спрайтов, что-то типа SpriteList.
Страницы: 1 2 вся ветка
Форум: "Игры";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.045 c