Главная страница
    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.044 c
2-1158939772
ycuk
2006-09-22 19:42
2006.10.08
MySQL


1-1156764443
Mameluke
2006-08-28 15:27
2006.10.08
Масштабирование окна


2-1158578030
Rezon
2006-09-18 15:13
2006.10.08
Подскажите где можно почитать про ....


11-1133822851
NewApplet
2005-12-06 01:47
2006.10.08
Чем можно заменить Applet ?


2-1158991317
Steep
2006-09-23 10:01
2006.10.08
iso файлы





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