Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

icq: 482-373-277
По умолчанию

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

icq: 499637481
skype: sergiytkach
По умолчанию

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

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

ПП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, 23:01   #404
Гром
Профессионал
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
Репутация: 473

icq: 482-373-277
По умолчанию

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

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

icq: 482-373-277
По умолчанию

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

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

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

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

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


09:52.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru