|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.11.2009, 21:14 | #401 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Beermonza, тоже логично...
С другой стороны, текущий кадр относится исключительно к конкретному объекту, а общее число кадров - ко всем объектам, использующим данную анимацию. Опять же и хранить идентичную информацию (число кадров) в каждом объекте - это, конечно, не так затратно, как своя собственная копия всей анимации для каждого объекта, но все же... А если все же объект использует разные виды анимации? Например, какой-нибудь персонаж идет вправо, влево, вверх, вниз, по диагонали, в каждом из направлений машет мечом да плюс еще пьет зелья и леший знает что еще... И таких на карте много... Информация множится со страшной скоростью, тем более что и хранить неудобно, разве что в безликом массиве, когда не всегда понятно, какой номер элемента за какую анимацию отвечает.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
27.11.2009, 21:38 | #402 | |
PHP, Delphi
Форумчанин
Регистрация: 07.05.2008
Сообщений: 388
|
Цитата:
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты |
|
27.11.2009, 21:47 | #403 |
Инженер ИС
Старожил
Регистрация: 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) Мир духу его
|
27.11.2009, 22:01 | #404 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Beermonza, ну да, в принципе про хранение всей анимации в одном файле слышал. Вплоть до хранения всех картинок небольшой игры в одной картинке.
При таком раскладе, действительно, использование анимации становится специфичным для конкретного объекта... Структура хранения информации, правда, усложняется...
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
27.11.2009, 22:15 | #405 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Кроме того, все манипуляции с анимацией вы должны вложить в сопровождающем файле особого типа, где расписано: какого размера кадр, сколько кадров всего, сколько типов находятся в сборе, как пользоваться вырезкой, по типам, направлениям и пр. пр. пр. ...в этом случае вы уже не лезете в код движка, а создаете сборную текстуру и файл параметров, ...движок сам применит анимацию как положено, притом по одному и тому же алгоритму, читая сопроводительный файл один раз при загрузке ресурса в банк текстур и анимаций.
Еще один момент, ...знаете чем анимация отличается от статической текстуры в данной структуре хранения? ...ничем, просто в файле написано что кадр всего 1 и тип один. Для движка не составит никакого труда лишний раз просчитать условие на 1 кадр, это рациональнее записи условий на наличие анимации.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
27.11.2009, 22:43 | #406 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Да, насчет статичной картинки в один кадр я не то в этой теме, не то в соседней уже прочитал и реализовал!
Информацию по числу и размерам кадров хранить и использовать несложно... А вот куда писать информацию по типам, направлениям и пр? К анимации или объектам? Может быть, отдельно хранить собственно картинки, а отдельно - информацию о расположении анимации данного типа на ней? А потом объект обращается к конкретной структуре информации... Как-то все-таки проще кажется хранить раздельно разные типы анимации (можно и для каждой анимации своя картинка), и уж потом обращаться к каждой из них в различных ситуациях... А уж разобрать хранящуюся на диске картинку хоть со всей анимацией игры на различные объекты анимации - не проблема...) P.S.Хотя может и не проще это... Мозги нынче уже плохо соображают, завтра на свежую голову еще подумаю!
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
28.11.2009, 21:14 | #407 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Хозяин - Барин, ...кому как удобно, тот так и делает. Но в основе всегда - рациональное использование пространства дисков, оперативное использование ресурсов без вмешательства в код движка, создание структуры кода и распределение ресурсов для быстрого доступа/обработки.
Как ни крути, кроме самого движка тянется еще цепочка спец-программ для создания ресурсов, кроме, собственно, еще и редактора карт.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
29.11.2009, 13:51 | #408 |
Новичок
Джуниор
Регистрация: 29.11.2009
Сообщений: 1
|
|
03.01.2010, 17:06 | #409 |
Пользователь
Регистрация: 08.06.2009
Сообщений: 11
|
Как сделать так чтоб игра показывалась на весь экран ну как обычные игры?? Заранее спасибо
p.s. Посоветуйте литературу по написании игр в Delphi?? |
03.01.2010, 17:39 | #410 | |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Цитата:
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хорошие уроки | Render | Общие вопросы Delphi | 9 | 15.09.2012 07:13 |
Акцесс вопросы новичков | Yaga | Помощь студентам | 4 | 02.06.2008 00:16 |
Учебники для новичков в програмировании | Рар | Общие вопросы Delphi | 6 | 08.01.2007 08:07 |