Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2009, 21:14   #401
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Beermonza, тоже логично...
С другой стороны, текущий кадр относится исключительно к конкретному объекту, а общее число кадров - ко всем объектам, использующим данную анимацию. Опять же и хранить идентичную информацию (число кадров) в каждом объекте - это, конечно, не так затратно, как своя собственная копия всей анимации для каждого объекта, но все же...
А если все же объект использует разные виды анимации? Например, какой-нибудь персонаж идет вправо, влево, вверх, вниз, по диагонали, в каждом из направлений машет мечом да плюс еще пьет зелья и леший знает что еще... И таких на карте много... Информация множится со страшной скоростью, тем более что и хранить неудобно, разве что в безликом массиве, когда не всегда понятно, какой номер элемента за какую анимацию отвечает.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 27.11.2009, 21:38   #402
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию

Цитата:
...тема обязывает давать понятия новичкам.
Вот вдохновили вы своей темой - решил сделать простенькую rogue-like игру, но по вашим советам, на спрайтах, но чтобы не мигало, как обычно бывает. С чего следует начать в описании структур?
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты
apromix вне форума Ответить с цитированием
Старый 27.11.2009, 21:47   #403
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Открою небольшой секрет, которого быть может новички не знают, или слышали мельком, ...дело в том, что на одной общей текстуре могут быть расположены несколько типов анимации, относящиеся к одному типу объекта. В этом случае, один из объектов игры может пользоваться своим куском анимации "от сих до сих", макс. кадр у объектов может быть разный. Вот условно пример сборной текстуры:

ПП1 ... ПП8 ПЛ1 ... ПЛ8 ПВ1 ... ПВ8 ПН1 ... ПН8
АП1 ... АП8 АЛ1 ... АЛ8 АВ1 ... АВ8 АН1 ... АН8
ГП1 ... ГП8 ГЛ1 ... ГЛ8 ГВ1 ... ГВ8 ГН1 ... ГН8


Поясню что это за запись. Это представление сборной текстуры в виде структуры кусочков, кадров, по типу анимации.
Первая линия - подряд идущие кадры с 1 по 8 в разных, допустим 4-й направлениях. ПП - перемещение право, ПЛ - перемещение влево, ПВ - перемещение вверх, ПН - перемещение вниз.
Вторая линейка - атака, также по направлениям, третья - гибель по направлениям. Все это в одном графическом файле, с именем типа анимации. Когда объект использует анимацию, у него есть движковые переменные направления анимации 1, 2, 3, 4, но в анимации для универсальности используется общий счет текстур (у дерева нет направлений), поэтому объект, в данном случае персонаж, берет с банка текстуру тем же способом, что и все объекты, но использует исходя и игрового типа свой участок. Один персонаж идет с 1-го по 8-й кадр сборной текстуры, а второй с 9-го по 16-й, у них разный макс. кадр, и кроме того и начало, ...в данном случае условие If Obj[i,j].Frame > Obj[i,j].MaxFrame then Obj[i,j].Frame := 0; уже будет некорректным, вместо Obj[i,j].Frame := 0; будет Obj[i,j].Frame := Obj[i,j].StartFrame;
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 27.11.2009, 22:01   #404
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Beermonza, ну да, в принципе про хранение всей анимации в одном файле слышал. Вплоть до хранения всех картинок небольшой игры в одной картинке.
При таком раскладе, действительно, использование анимации становится специфичным для конкретного объекта... Структура хранения информации, правда, усложняется...
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 27.11.2009, 22:15   #405
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Кроме того, все манипуляции с анимацией вы должны вложить в сопровождающем файле особого типа, где расписано: какого размера кадр, сколько кадров всего, сколько типов находятся в сборе, как пользоваться вырезкой, по типам, направлениям и пр. пр. пр. ...в этом случае вы уже не лезете в код движка, а создаете сборную текстуру и файл параметров, ...движок сам применит анимацию как положено, притом по одному и тому же алгоритму, читая сопроводительный файл один раз при загрузке ресурса в банк текстур и анимаций.
Еще один момент, ...знаете чем анимация отличается от статической текстуры в данной структуре хранения? ...ничем, просто в файле написано что кадр всего 1 и тип один. Для движка не составит никакого труда лишний раз просчитать условие на 1 кадр, это рациональнее записи условий на наличие анимации.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 27.11.2009, 22:43   #406
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Да, насчет статичной картинки в один кадр я не то в этой теме, не то в соседней уже прочитал и реализовал!
Информацию по числу и размерам кадров хранить и использовать несложно... А вот куда писать информацию по типам, направлениям и пр? К анимации или объектам? Может быть, отдельно хранить собственно картинки, а отдельно - информацию о расположении анимации данного типа на ней? А потом объект обращается к конкретной структуре информации...
Как-то все-таки проще кажется хранить раздельно разные типы анимации (можно и для каждой анимации своя картинка), и уж потом обращаться к каждой из них в различных ситуациях... А уж разобрать хранящуюся на диске картинку хоть со всей анимацией игры на различные объекты анимации - не проблема...)

P.S.Хотя может и не проще это... Мозги нынче уже плохо соображают, завтра на свежую голову еще подумаю!
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 28.11.2009, 21:14   #407
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Хозяин - Барин, ...кому как удобно, тот так и делает. Но в основе всегда - рациональное использование пространства дисков, оперативное использование ресурсов без вмешательства в код движка, создание структуры кода и распределение ресурсов для быстрого доступа/обработки.
Как ни крути, кроме самого движка тянется еще цепочка спец-программ для создания ресурсов, кроме, собственно, еще и редактора карт.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 29.11.2009, 13:51   #408
KIZ
Новичок
Джуниор
 
Регистрация: 29.11.2009
Сообщений: 1
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
Один из вариантов как можно сделать игру пазл.
Исходник с комментариями, читайте там.
Версия 0.1 (работает еще не все)
В следующей доделаю, а еще в следующей глянец наведу.
Больше не появилось никакой версии?
KIZ вне форума Ответить с цитированием
Старый 03.01.2010, 17:06   #409
Skynet91
Пользователь
 
Регистрация: 08.06.2009
Сообщений: 11
По умолчанию

Как сделать так чтоб игра показывалась на весь экран ну как обычные игры?? Заранее спасибо

p.s. Посоветуйте литературу по написании игр в Delphi??
Skynet91 вне форума Ответить с цитированием
Старый 03.01.2010, 17:39   #410
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
весь экран
FormStyle =alwaysontop, + maximize.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хорошие уроки Render Общие вопросы Delphi 9 15.09.2012 07:13
Акцесс вопросы новичков Yaga Помощь студентам 4 02.06.2008 00:16
Учебники для новичков в програмировании Рар Общие вопросы Delphi 6 08.01.2007 08:07