|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.11.2009, 15:54 | #391 | ||
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
Так что, я думаю, то что предложено выше в полной мере позволяет реализовать любую 2D игру, и не только. Цитата:
Сохранение карты идет последовательно, клетка за клеткой, записывая код объекта, ...там где нет объектов идет пропусковый байт. После записи файл сжимается и записывается уже на винт.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
||
27.11.2009, 16:07 | #392 | |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Цитата:
|
|
27.11.2009, 18:11 | #393 |
PHP, Delphi
Форумчанин
Регистрация: 07.05.2008
Сообщений: 388
|
Вот почитал уроки. У меня все спрайты в отдельных файлах, решил их объединить в несколько, по темам. Возник вопрос: как загруженный битмап порезать? Может быть есть готовое решение?
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты |
27.11.2009, 18:23 | #394 | |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Цитата:
|
|
27.11.2009, 18:25 | #395 |
Участник клуба
Регистрация: 29.01.2008
Сообщений: 1,039
|
Код:
Код:
Код:
|
27.11.2009, 18:51 | #396 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
На самом деле здесь по-прежнему присутствует упомянутая некогда в топике проблема: если два объекта имеют одну и ту же анимацию, то они рисуются абсолютно синхронно, даже если по идее не должны (пример с поваленными деревьями).
Я недавно тоже столкнулся с этой проблемой и вначале измышлял совершенно дикие варианты вплоть до хранения в объекте текущего кадра анимации и количества кадров, и, соответственно проверкой на последний кадр вне функций самой анимации. Вскоре, однако, нашел довольно изящное решение. Анимация по-прежнему хранится отдельно, текущий кадр хранится в объекте карты (без этого никуда), процедура рисования анимации принимает текущий кадр в качестве аргумента (в итоге на карте могут быть несколько объектов с одной и той же анимацией на разных стадиях) и, что самое главное - номер кадра передается функции рисования анимации по ссылке (пишу на C++). Т.о. проверка на последний кадр происходит не выходя за пределы типа анимации, а объект карты должен хранить всего лишь номер текущего кадра и не заботиться о том, является ли он последним. Модификация кода по сравнению с вариантом, где текущий кадр хранился в типе анимации минимальна - удалил из типа переменную CurrFrame, вписав его вместо этого в качестве аргумента. Не знаю, есть ли в Delphi ссылки, но, думаю, если что, можно воспользоваться указателями.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
27.11.2009, 19:09 | #397 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Гром, именно этот тип анимации я описывал в качестве урока, ...кадр текущий и их макс. число хранит в себе каждый объект, а анимация одна в банке на все кадры. Это очень правильно и рационально.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
27.11.2009, 19:33 | #398 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Beermonza, честно говоря, тему я почти не читал, т.к. дельфийский код читаю медленно на основе полузабытого паскаля и билдера... А вначале там и вовсе коды во вложенных файлах, их вообще лень читать...)
А как насчет хранения максимального номера кадра в типе анимации? По-моему, производить проверку номера кадров лучше всего прямо во время рисования кадра, т.е. в функции объекта типа анимация. Мне это кажется как-то более логично. К тому же, объект может иметь несколько различных видов анимации (например, дерево стоящее и дерево падающее). Если стоящее дерево имеет всего один кадр (или просто другое число кадров, нежели падающее), то как хранить число кадров? Отдельно для каждого типа анимации? Вообще прямо сейчас я имею на руках работающий код рисования анимации, реализованный по этому методу, а вот до использования этой самой анимации в объектах еще не дошел, так что пока не знаю наиболее рациональных приемов.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
27.11.2009, 20:18 | #399 | |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Цитата:
|
|
27.11.2009, 21:00 | #400 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Товарищи, не меряемся длинной портянки кода, ...тема обязывает давать понятия новичкам.
Гром, условие на переполнение кадра (счетчик) использует оба значения, текущий кадр и макс. кадр, и переводит текущий на начальный, посему оба значения нужно хранить вместе (условно): Код:
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хорошие уроки | Render | Общие вопросы Delphi | 9 | 15.09.2012 07:13 |
Акцесс вопросы новичков | Yaga | Помощь студентам | 4 | 02.06.2008 00:16 |
Учебники для новичков в програмировании | Рар | Общие вопросы Delphi | 6 | 08.01.2007 08:07 |