Главная страница
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
>Я тут пару раз ого-го как лоханулся.
не ты один. %-) многие получали "прочистку". а я сколько раз... %-)


 
Cash ©   (2006-10-02 18:45) [41]

Ketmar ©   (02.10.06 17:49) [36]:
Блин, да не выпендриваюсь я, :( вырос уже!
Я дал теоретическое направление мысли, мне было набо организовать
лист, так, чтобы я смог и как стек его юзать и как очередь, и чтоб
траты на перемещение по индексам были минимальны. И после этапа
прагматики вышла вот такая монстра. :)
Мне было надо, я сделал. Если кому не надо, ну да чтож с ними поделать то?... :)
@!!ex спросил о методе, я дал наколку, и усё!


 
Ketmar ©   (2006-10-03 03:15) [42]

да мне, вообще-то, плевать, как оно там у тебя организовано. но без кода и бенчей -- ты уж извини, но все твои слова -- трындёж.


 
Ketmar ©   (2006-10-03 03:16) [43]

я понимаю, что сказать "я круче борланда" -- это рулкз. только неплохо бы доказывать. иначе -- см. [42]. %-)


 
Cash ©   (2006-10-03 08:01) [44]

Ketmar ©   (03.10.06 03:15) [42]:
Видать ты очень занятой человек. Я ж сказал, что не намерян выделяться и
говорить что либо подобное [43]. Мне не надо, чтоб кто либо верил, что
я "круче борланда". А еще мне не охота флудить эту ветку тупыми
разъяснениями. Так что я это балабольство закончу.
(ведь скажи же, я тупо изъясняюсь, тупо - значит так, чтобы и бабушка
на завалинке понять смогла)


 
Ketmar ©   (2006-10-03 12:20) [45]

слив защитан.


 
Belorus ©   (2006-10-07 16:15) [46]

Кетмар ты Тормоз. Человек описал метод в двух словах. Думаю если понадобится - объяснит подробнее. С чего это он вдруг тебе станет свои сырцы отдавать... Я бы тоже не дал. Нужно будет сам напишешь, была бы идея, а реализовать - дело простое.


 
@!!ex ©   (2006-10-07 16:24) [47]


> Belorus ©   (07.10.06 16:15) [46]

Типа идея двусвязного списка это что-то новое и сверхоригинальное?
Его вроде даже в ВУзах проходят.....


 
Cash ©   (2006-10-07 18:17) [48]

@!!ex ©   (07.10.06 16:24) [47]:
Блин, в ВУЗе бы не учился, я б этого не знал! (Хотя дело спорное, мож и знал бы)
В ВУЗах еще проходят методы Хаффмана и LZ кодирования. А реализовать
подобное, кроме лаб и курсовой, не получилось ни у кого.



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

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

Наверх




Память: 0.59 MB
Время: 0.031 c
9-1159903864
kurt
2006-10-03 23:31
2007.09.16
как делать меню к игре


15-1185534931
Hadroran
2007-07-27 15:15
2007.09.16
Скачать файл с narod.ru


1-1183718871
azamatufa
2007-07-06 14:47
2007.09.16
FastReport счетчик группы внутри группы


15-1187596793
Sergey Masloff
2007-08-20 11:59
2007.09.16
Задачка. Контекстно-свободная грамматика для римских чисел.


15-1187362611
oldman
2007-08-17 18:56
2007.09.16
Гороскопы...