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

Вниз

Создание движка игры   Найти похожие ветки 

 
netboy   (2006-03-31 01:46) [0]

Решил сделать 2D движок. Написал процедуры для работы с окном OpenGL. Надо сделать процедуры для работы со спрайтами.
Где можно достать материал по спрайтам (загрузкой, уничтожением, анимированием ...) в OpenGL ?


 
XProger ©   (2006-03-31 01:52) [1]

http://mirgames.ru


 
Mortem ©   (2006-03-31 02:55) [2]

http://reijii.mirg.ru


 
XProger ©   (2006-03-31 02:59) [3]

http://xproger.mirg.ru


 
Nic ©   (2006-03-31 07:21) [4]

http://worlds3d.mirg.ru


 
Nic ©   (2006-03-31 07:22) [5]

http://gamedev.ru


 
antonn ©   (2006-03-31 07:51) [6]

http://www.yandex.ru/


 
DR0N ©   (2006-03-31 10:29) [7]

http://dronprogs.mirgames.ru


 
Mortem ©   (2006-03-31 11:47) [8]

http://rambler.ru


 
Sphinx ©   (2006-03-31 11:51) [9]

Буга-га...повеселили =)
не буду отрываться от коллектива:
http://google.ru


 
antonn ©   (2006-03-31 11:54) [10]

http://www.koders.com/


 
Nic ©   (2006-03-31 13:51) [11]

http://worlds3d.narod.ru
http://nehe.gamedev.net
http://gamedev.net
http://delphigl.narod.ru
http://viv.fatal.ru
http://devmaster.net
http://delphi3d.net
http://delphigl.com
http://code.rpro.ru
http://sulaco.co.za
http://d3dengine.narod.ru
http://steps3d.narod.ru
http://dtf.ru
http://delphimaster.ru
http://opengl.org
http://microsoft.com


 
antonn ©   (2006-03-31 15:32) [12]

http://delphigfx.mastak.ru/


 
Mortem ©   (2006-03-31 17:31) [13]

http://code.darthman.com


 
RzCoDer ©   (2006-03-31 20:01) [14]

И только я догадаюсь спросить.А в OpenGL есть спрайты???


 
Nic ©   (2006-03-31 21:42) [15]


> RzCoDer ©   (31.03.06 20:01) [14]

Очень легко сделать.


 
Mortem ©   (2006-03-31 23:19) [16]


> RzCoDer ©   (31.03.06 20:01) [14]

Я-таки у вас сначала спршу сам:
1. Что, в вашем понимании, спрайты?
2. Что, в вашем понимании, OpenGL?

Когда ви-таки получите правильные ответы на эти вопросы, то неправильные вопросы не будут-таки кушать ваш мозг.


 
Darthman ©   (2006-03-31 23:49) [17]

http://code.rpro.ru уже давно не актуален, ввиду того, что владелец домена и сайта давно сменился, и там будет явно не то что вы ищите.


 
RzCoDer ©   (2006-04-01 17:47) [18]


> 1. Что, в вашем понимании, спрайты?
> 2. Что, в вашем понимании, OpenGL?


Если бы я задавал эти вопоросы, задавал бы их в другом порядке, ну да ладно.
1. В моём понимании спрайт в 2д это некий тип данных заключающий в себя информацию о размере его плоскости, текстуре. В добавок класс спрайта может содержать процедуры: создания, перемещения, уничтожения и т.п.; свойтва: угла наклона, скорости, прозрачности, ну и ещё некоторые в зависимости от игры и её автора. Хорошим примером спрайта я считаю класс спрайта из DelphiX.
2. OpenGL - графическое API. То есть код обеспечивающий взаимосвязь программы и апаратной части.

Хоть я и ответил на Ваши вопросы, тем не менее изначальный вопрос автора темы кажется мне двойственным, неправильным. Если автора интересует работа со спрайтом как с классом - структурой содержащей информацию, (а именно это он и сказал:

> Надо сделать процедуры для работы со спрайтами.

)
то ему надо обращатся не в эту конференцию. Если же его интересует вывод графики, то причём тут спрайты? Ему нужна общая теория по текстурированию плоскостей в OpenGL, так бы сразу и говорил

.


 
Mortem ©   (2006-04-01 18:47) [19]


> RzCoDer ©   (01.04.06 17:47) [18]

Извиняюсь, я несколько не правильно понял ваш пост [14]. ^___^

А вообще-то ему вполне в эту конфу. Т.к. спрайты так или иначе относятся к играм. Как и вывод графики. Так же как спрайты относятся к выводу графики.

Хотя с другой стороны - в конфе этому товарищу делать пока нечего - РАМБЛЕР для него сейчас более полезный ресурс.

P.S. По моему логично спрашивать именно в такой последовательности.


 
WillRock   (2006-09-27 11:56) [20]

Да спрайты это все фигня и лирика...
Это можно без проблем найти..
я лично нашел много подобной инфы менее чем за час..
Проблема в другом.
Я забыл, как в Delphi сделать кдассный ООП )))
Кто может, пожскажите, как реализовать классы TSprite и TSpriteEngine, который управляет всеми спрайтами...
Буду очень признателен


 
@!!ex ©   (2006-09-27 13:37) [21]

WillRock   (27.09.06 11:56) [20]

Пипец... По спрайтам инфы нашел дофига, а вот по ООП в дельфи нету...
Серьезно чтоли? :))


type
TSprite = class
 public
  Constructor Create();
end;

TSpriteEngine = class
 public
  Constructor Create();
end;


Никогда не видел такого? :))


 
Nic ©   (2006-09-27 22:11) [22]


> WillRock   (27.09.06 11:56) [20]

Тейксера и Пачеко рулят :)


 
@!!ex ©   (2006-09-27 23:23) [23]

Поздна ноченька..
Спать не хочется..
Нету повода не заморочится..



type
TSprite = class
 public
  Constructor Create(LifeTime,TextureID,FrameCount:integer);
  Procedure    Draw(x,y,z:GLFloat; cx,cy,cz:GLFloat; Frame:GLFloat);
end;

TSpriteArray = array[0..0] of TSprite;
PSpriteArray = ^TSpriteArray;

TSpriteEngine = class
 public
  Sprites:PSpriteArray
  SpritesCount:integer;

  Constructor Create;
  Procedure AddSprite(LifeTime,TextureID,FrameCount:integer);
  Procedure Update;
end;


Экспромт... буду рад адекватной критике.


 
@!!ex ©   (2006-09-27 23:24) [24]

Упс... Забыл задание координат перенести из отрисовки в конструктор спрайта....


 
Darth   (2006-10-02 01:03) [25]

TSpriteArray = array[0..0] of TSprite;
Жжешь! 1 спрайт это сильно для системы спрайтов.


 
Ketmar ©   (2006-10-02 01:08) [26]

>[25] Darth 2-Oct-2006, 01:03
>Жжешь! 1 спрайт это сильно для системы спрайтов.
тяжело не знать основ, правда?


 
Darth   (2006-10-02 02:10) [27]

Ketmar ©   (02.10.06 01:08) [26]
Видимо тяжело... Но не мне.


 
Ketmar ©   (2006-10-02 03:46) [28]

>[27] Darth 2-Oct-2006, 02:10
>Видимо тяжело... Но не мне.
да. тебе -- легко. и то правда: меньше знаешь -- крепче спишь...


 
@!!ex ©   (2006-10-02 07:02) [29]

>>Darth   (02.10.06 01:03) [25]
Объяняю.
В данном случае(как вы могли заметить) используется не массив, а указатель на массив.
Можно было сделать просто указатель на TSprite, но в этом случае обращение к N-ому элементу было бы геморным.
Указатель же на массив позволяет работать с данными как с обычным массивом.
Возможно это не лучший подход, но лучше я не знаю.
Буду рад, если подскажете.

P.S.
array of TSprite
Это не лучший подоход, это ИМХО отстоейнейший подход.


 
Ketmar ©   (2006-10-02 14:10) [30]

>[29] @!!ex(c) 2-Oct-2006, 07:02
оставь его в покое. он же сам признался, что ему легко не знать основы. зачем усложняешь людям жизнь?


 
@!!ex ©   (2006-10-02 14:47) [31]


> Ketmar ©   (02.10.06 14:10) [30]

Упс.. Неподумал... Каюсь.... Исправлюсь.


 
Cash ©   (2006-10-02 16:32) [32]

@!!ex ©   (02.10.06 07:02) [29]:
> Возможно это не лучший подход, но лучше я не знаю.
> Буду рад, если подскажете.


Мне вон TList нравится юзать, гы-гы-гы, но только не тот, что с Classes,
а тот, что я сам спаял. Чет он у меня при тех же операторах и конструкции
работает быстрее, чем стандартный. Структура на основе списка,
двусвязная, с добавлением и удалением в трех вариантах (FIFO,LIFO,
по индексу) и красивый и быстрый проход по индексам.


 
Ketmar ©   (2006-10-02 17:04) [33]

>[32] Cash(c) 2-Oct-2006, 16:32
>работает быстрее, чем стандартный.
код и бенчмарки в студию. %-)


 
Cash ©   (2006-10-02 17:42) [34]

С кодом обломаю, по жесткому :))) я жадный, до жути! :)))
А на счет тестов - 10 млн. добавлений и засекаем время. :)
Сперва там, потом тут, засекал по RDTSC, на преиод работы родного листа
проявлялась аномалия активности, мож конечно и другие процессы с
завидной постоянственностью начинали грузить камень, но я склонился к
тому, что это родной лист тратит драгоценное время. Там разница на
1024 добавлениях была всего в ~10%, то же самое и для удалений, а при
проходе по индексам мой лист тратил на переход к соседниму индексу
около 78-80% от времени родного листа.


 
@!!ex ©   (2006-10-02 17:48) [35]

Cash ©   (02.10.06 16:32) [32]
Было бы интересно посмотреть.
Про то как реализован список в дельфе ничего сказать не могу, стараюсь не пользоватся стандартными классами, поскольку приходится менять язык порграммирования часто и не хочется привыкать к каким то классам, которые есть только в конкретном языке или реализации.

1) Было бы интересно посмотреть на код
2) не вижу смысла в двухсвязном списке. Поскольку итерации в данном случае идут только  в одноу сторону. удаление? В данном случае односвязный список работает отлично.
3) Список всегда работает медленнее чем вектор лежащей в одном кусе памяти, поскольку на одну меньше операция обращения к памяти. Хотя, конечно, разница в скорости минимальная и зависит от конкретной реализации.
4) Единственный минус вектора - перемещение памяти при изменении его размеров, лист по понятным причинам от такой проблемы избавлен.
Но есть способы серьезно уменьшить затраты вектора на выделение памяти, поэтому преимущества листа сомнительны.


 
Ketmar ©   (2006-10-02 17:49) [36]

"нет ручек -- нет и шоколадки" (ц)
пока нет кода -- всё это не более, чем трепёж в лунную ночь за пивком. %-)


 
Darth   (2006-10-02 17:54) [37]

Мда, чтоже вы такие жестокие-то? С чего Вы вообще взяли, что я весь из себя такой зелененький ?


 
Ketmar ©   (2006-10-02 17:58) [38]

"добренькие" живут на других форумах. а здесь народ зубастый -- за глупость запинает. не взирая на личности. за что я и люблю сей форум.


 
@!!ex ©   (2006-10-02 17:59) [39]


> Darth   (02.10.06 17:54) [37]

Да не жестокие.
Не парься.
Со всеми бывает.
Я тут пару раз ого-го как лоханулся. Ну и фиг с ним. Зато опыта и знаний набрался.


 
Ketmar ©   (2006-10-02 18:01) [40]

>[39] @!!ex(c) 2-Oct-2006, 17:59
>Я тут пару раз ого-го как лоханулся.
не ты один. %-) многие получали "прочистку". а я сколько раз... %-)



Страницы: 1 2 вся ветка

Текущий архив: 2007.09.16;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.026 c
3-1177857180
Galiaf
2007-04-29 18:33
2007.09.16
Вместо строки ссылка в мастере подстановок


2-1187607571
Arks
2007-08-20 14:59
2007.09.16
Как клонировать vcl-объект?


11-1169575891
Trible
2007-01-23 21:11
2007.09.16
Примитивные объекты: вопрос.


11-1169615992
dedo
2007-01-24 08:19
2007.09.16
SmoothDIB


15-1185555108
WASM
2007-07-27 20:51
2007.09.16
IPA