Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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.065 c
2-1158106874
Not
2006-09-13 04:21
2006.10.08
Подскажите пример исходника программы работающей с dll ?


2-1158396165
SPACE!!
2006-09-16 12:42
2006.10.08
Хранение графических ресурсов ..


11-1133818651
Vedun
2005-12-06 00:37
2006.10.08
Работа с базами данных


15-1158640912
Иксик
2006-09-19 08:41
2006.10.08
Люди добрые


15-1158594576
AntiUser
2006-09-18 19:49
2006.10.08
try ... except аки заглушка





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский