Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2007.09.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 3.499 c
2-1187716884
tim_ka
2007-08-21 21:21
2007.09.16
Stretch Bitmap


2-1187867166
guest___
2007-08-23 15:06
2007.09.16
Как заставить datetimepicker содержать другой формат даты ???


15-1187370188
EEefe
2007-08-17 21:03
2007.09.16
visual studio 2005 и visual studio .net


2-1187861807
tim_ka
2007-08-23 13:36
2007.09.16
Label на TImage


2-1187571706
Abcdef123
2007-08-20 05:01
2007.09.16
Чем можно заменить свойство Enabled?





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