Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.08;
Скачать: CL | DM;

Вниз

ГЛЮЧНОСТЬ В 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.049 c
3-1154986183
VitalikS
2006-08-08 01:29
2006.10.08
Commit по одной


2-1158359832
Juri
2006-09-16 02:37
2006.10.08
Фильтровать базу данных по куску слова


2-1158708747
Павел_
2006-09-20 03:32
2006.10.08
Потоко-безопасная запиcь в файл.


3-1154889900
Ilg
2006-08-06 22:45
2006.10.08
Ошибка при удалении


2-1158670460
Некто_Аполло
2006-09-19 16:54
2006.10.08
Засунуть PNG в DLL