Форум: "Игры";
Текущий архив: 2006.10.08;
Скачать: [xml.tar.bz2];
ВнизГЛЮЧНОСТЬ В DELPHIX Найти похожие ветки
← →
Аццкий_рыцарь:) (2005-12-25 03:07) [0]можно ли как-то ускорить ДелфиХ? а то когда выводишь на экран больше чем где-то 60 спрайтов, то он "неподецки" начинает глючить. Машина у меня не слабая, так что дело не в ней :(
← →
kruel (2005-12-25 08:53) [1]У меня P-4 1,8 и при 1000 спрайтах ничего не тормозит на 25 кадрах/в сек.
Может у тебя требовательные расчеты в DoMove, либо в DoDraw ты, например, рисуешь на канве по пикселям.
Тормозить будет страшно если используешь DrawAlpha, DrawRotate, DrawAdd.
А вообще DelphiX - это набор компонентов, который работает относительно медленно. Ускорить его можно, только тотально переписав. Но если ты это сделаешь, значит ты прекрасно значешь DirectX (лучше чем Hori), и DelphiX тебе уже в принципе не нужен.
← →
DR0N © (2005-12-25 10:46) [2]Можно.. не использовать аццтойный DelphiX ....
А так немного можно ускорить используя UnDelphiX.
← →
Antonn © (2005-12-25 12:00) [3]точно, нафиг дельфи икс, переходи вразу на машинные коды...
← →
Санёк (2005-12-25 12:15) [4]DelphiX очень тормозят при альфа прорисовке и при попиксельной проверке столкновений.
как уже сказали - UnDelphiX чуточку быстрее.
но нормальный проект на этих движках все равно не сделаешь.
посмотри Asphere - достаточно неплохая вещь, но у него проблема с документацией.
или GLScene...
← →
Аццкий_рыцарь:) (2005-12-26 00:55) [5]А GLScene, по нему много документации на русском и исходников?
Это такой же пакет как и ДелфиХ?
← →
Xren (2005-12-26 05:32) [6]Аццкий рыцарь Глсцене очень хороший продукт насчёт документации то есть много демо примеров исходников с помощью которых можно научится,также есть несколько сайтов с статьями,и форумы.
Совет забуть ДельфиХ и переходи на ГлСцене там можно делать всё и реально можно создать любую игру на современном уровне.
← →
Fosgen (2005-12-26 11:05) [7]Можно, конечно. Только ряд блоков в ГЛСцене также придется переделывать. Например те же билборды. "Родные" от ГЛС тормозят нехило. И система частиц в ГЛС ограниченная по возможностям и опять-таки жрет ресурсы неслабо.
Я вот год назад начал проект на ГЛС, так теперь все больше и больше заменяю модули от ГЛС на свои...
Но для начала конечно ГЛС - очень и очень пользительно.
← →
Аццкий_рыцарь:) (2005-12-26 23:39) [8]А можете плиз тут сылочку кинуть на ГЛсцен, рассказать как его устанавливать на 7 делфи и ссылочку на самое нормальное обучение :) на русском :) желательно с НУЛЯ
← →
JUS © (2005-12-28 11:27) [9]
> когда выводишь на экран больше чем где-то 60 спрайтов, то
> он "неподецки" начинает глючить. Машина у меня не слабая,
> так что дело не в ней :(
Дело наверное в том что ты плохо учил ООП { Объектно орентированное программирование } У меня по началу тоже были такие глюки как у тебя, потом я взял книжку по делфи и прочитал про ооп. У меня на экране больше 700 спрайтов и не тормозит. Ты их не правильно выводиш на экран! потому и тормоза.
← →
Аццкий_рыцарь:) (2005-12-29 04:10) [10]2JUS а как правильно? я создаю клас, в нем конструктор, в конструкторе пишу все про спрайт по умолчанию. и все
← →
JUS © (2005-12-29 12:42) [11]А я создаю так
TPrimer=class(TImageSprite)
public
procedure DoMove (MoveCount:Integer);override;
procedure DoCollision(Sprite: TSprite; var Done: Boolean); override;
end;
var
Primer:array[0..999] of TPrimer; //предположим хотим использовать 1000 объектов, не больше
fPrimer:integer;//использую чтоб знать сколько объектов создано, чтоб при выходе из "игры" отчистить память на такое же кол-во
i:integer;//просто счётчик
...
{создаю 1000 объектов}
For i:=0 to 999 do begin
begin
fPrimer:=fPrimer+1;
Primer[fPrimer]:=TPrimer.Create(DXSpriteEngine.Engine);
Primer[fPrimer].Image:=DXImageList.Items.Find("Primer");
Primer[fPrimer].Width:=Primer[fPrimer].Image.Width;
Primer[fPrimer].Height:=Primer[fPrimer].Image.Height;
Primer[fPrimer].X:=XX;
Primer[fPrimer].Y:=YY;
Primer[fPrimer].Z:=ZZ;
end;
end;
...
procedure TPrimer.DoMove(MoveCount:Integer);
begin
//???***???\\\
collision;
end;
...
procedure TPrimer.DoCollision(Sprite:TSprite;var Done:Boolean);
begin
//???***???\\\
end;
...
{отчищаем память при закрытии проекта}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var cls:integer;
begin
for cls:=0 to fprimer do Primer[cls].Free;
end;
Вот и всё.
Если объекты пули, то их следует лучше "отчистить" в процессе игры, когда они долетели до цели или вылетили за экран.
Удачи!
← →
Аццкий_рыцарь:) (2005-12-30 04:00) [12]2 JUS ща попробую это взять на заметку :)
← →
OSokin © (2006-01-07 17:46) [13]Лучше юзать TDXSpriteEngine. Оно поддерживает динамику, позволяет быстро удалить объект. TImageSprite лучше юзать тогда, когда это нужно, т. к. оно делает и поворот, и альфу по дефолту.
← →
QwertyKz © (2006-01-07 18:19) [14]А не проще уж тогда на OpenGl"e все делать :) ?
← →
Cash © (2006-01-07 19:03) [15]QwertyKz © (07.01.06 18:19) [14]:
Проще, если конесно знаешь OpenGL!
else - нет!
← →
JUS © (2006-01-07 20:46) [16]
> OSokin © (07.01.06 17:46) [13]
> Лучше юзать TDXSpriteEngine. Оно поддерживает динамику,
> позволяет быстро удалить объект. TImageSprite лучше юзать
> тогда, когда это нужно, т. к. оно делает и поворот, и альфу
> по дефолту.
лучше то лучше, если это тот спрайт который надо поворачивать, иначе зря грузить память
← →
Дорогие РОССИЯНЕ :) (2006-01-07 23:06) [17]
> Проще, если конесно знаешь OpenGL!
> else - нет!
Надо же когда-то начинать :) В любом случае все стремится к этому
← →
П7 (2006-01-11 11:31) [18]Для ускорения DelphiX нужно всего-лишь купить мощный процЫк! (:
← →
Аццкий_рыцарь:) (2006-01-11 22:26) [19]П7 у меня дум 3 на средних настройках идет без глюков :) а делфи глючит ггг
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2006.10.08;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.044 c