Doll City - Кукольный Город - pc игра Doll City - Кукольный Город - pc игра
Этот город полон загадок и надежд. Вы просыпаетесь
и не помните, что с вами было до этого.
В далеком 2008 году я сделал игру эмулятор электроника ИМ-02 Ну, Погоди !
Позднее я иногда возвращался к этому проекту.
А недавно решил сделать еще одну игру - Веселый Повар. Мне показалось, что
задача будет простой, поскольку есть опыт создания Ну, Погоди !
На деле задача оказалась чуть сложнее, как это обычно бывает, и в те
короткие промежутки времени, в которые я планировал делать игру
процесс никак не шел.
Точнее он шел, но куда-то не тем путем.
Давайте разберемся как я, как говорится докатился до такой жизни, или точнее,
в чем собственно проблема и как её всё-таки решить.
Проблема оказалась такой:
в обычной игре Ну, Погоди ! яйца катятся с лотков и либо разбиваются
и тогда игра на время останавливается, а затем яйца продолжают катиться
дальше, либо если Волк поймал яйцо - оно просто исчезает.
В игре Веселый Повар суть немного иная.
Вместо яиц есть падающая еда, которая также падает сверху вниз в 4 потока.
Чем-то похоже на Ну, Погоди! да не совсем.
Если повар не поймал еду, то она также падает на пол и мы получаем целое
или половину штрафного очка (если еду поймала мышь). Если же повар еду
поймал - она не исчезает, а снова постепенно взлетает вверх.
Вот это кардинальное отличие и породило у меня вопрос как его реализовать,
модифицировав алгоритм используемый в Ну, Погоди !
На данный момент (уже со 2 попытки), я проблему уже решил и главный опыт,
которым хочу поделиться с вами - это то, как я решал проблему.
Потому что не сама проблема вызывает интерес, она достаточно тривиальна,
а способы вообще решения каких-либо проблем.
Итак.
Самый простой способ, который мне пришел на ум на первой попытке решения
задачи: сделать чтобы еда (как и яйца) падала сначала вниз, ну а затем,
если повар её поймал - меняла направление и возвращалась назад.
Таким образом еда, если повар её успевает ловить, все время движется туда-сюда.
Однако используя алгоритм созданный для Ну, Погоди ! + его модификация не
увенчались успехом.
Еда упорно не желала взлетать, застревала на одной и той же позиции
или вообще исчезала.
Я пробовал подойти к решению с разных сторон, но код все больше и больше
запутывался, а решение не приближалось, а наоборот - удалялось.
В конце концов я похоже запутался окончательно. Я уже перестал понимать
каким образом вообще еда должна падать и почему она не желает двигаться
в обоих направлениях, а упорно летает только в одном - сверху вниз.
Просто заколдованный круг какой-то, подумал я.
Ведь не секрет, что авторы оригинальной игры электроника ИМ-04 Веселый Повар,
наверняка не изобретали какой-то сверхсложный алгоритм, поскольку просто
не было у них такой возможности.
Значит надо идти простым путем подумал я и упростил алгоритм до безобразия.
Путь позиции еды - это биты внутри целого числа.
Тогда
43210 - это позиции еды,
01234 - соответствующие им биты целого числа переменной, которая будет
хранить позицию еды для данного текущего потока.
Остается начать двигать еду - для этого очень подойдет логический побитовый
сдвиг, который есть в языке c++, а именно >> и <<.
Казалось бы, все просто - двигай себе биты туда-сюда и получай циклически
движущуюся еду, но как бы не так :)
int a = 1;
int b = a << 1;
выполнив эти две строки кода на языке c++ получим ответ
b = 2.
Все хорошо.
Поскольку 2 это в двоичном представлении:
10
если будем двигать дальше то будем последовательно получать
100
1000
10000
Но дальше наши биты кончились.
Теперь надо двигать в обратном направлении.
Двигаем.
int a = 16
int b = a >> 1;
Получим
b = 8
Т. е. в двоичном представлении снова
1000
Двигаем дальше - снова будет
100
10
1
А затем после последнего сдвига
бит 1 потеряется, поскольку уйдет за пределы размерности
целого числа
и у нас получится 0.
Однако воплощая это все в коде я столкнулся с рядом сложностей.
А именно:
Еда в потоках организована в виде наборов bool (булевских) значений
Таким образом поток еды это массив вида
bool Food[5]
Т. е. 5 логических значений.
Так просто легче визуализировать каждую падающую еду в потоке.
Есть еда в данной позиции - true - рисуем еду,
нет - false - не рисуем. Все как в оригинальной игре.
Но получается, что целое число нужно преобразовывать в массив выдергивая
отдельные биты и превращая в логические значения с типом bool.
Все это конечно реализуемо, но главная подстава кроется вот в чем:
для преобразований нужно написать не слишком длинную функцию, которая
и будет делать указанные вещи.
Но на этом пути снова возникли проблемы.
Сверху вниз еда прекрасно двигалась, но как только ей надо было
по закону лететь снова вверх, она ни в какую лететь не желала, словно
бы законы всемирного тяготения ополчились против меня или игры :)))
Тогда я, методом проб и ошибок стал выстраивать такой алгоритм, чтобы
с одной стороны код был более менее понятным (а не запутанным, как это
обычно бывает), а с другой - выполнял поставленную задачу - еда должна
летать туда-сюда.
В показанном ниже видео как раз продемонстрировано, что получилось.
Есть еще небольше нюансы, но их остается поправить.
Веселый повар #152
Из видео Вы узнали, что легче всего контролировать алгоритм не сразу
на все 4 потока, а пока только на 1, что я и сделал.
Как только задача с 1 потоком будет окончательно решена (все оставшиеся
нюансы исправлены), то решение можно будет распространить на все
4 потока и главная часть игры будет уже по сути готова.
Какие нюансы Вы заметили, которые нужно поправить ?
Ответ Вы найдете открыв спойлер ниже
[Спойлер]
в позиции 4, когда еда находится в нижней точке, она как бы простаивает на
одном и том же месте 1 лишний интервал
времени. Вот это нужно исправить.
На данный момент работа над игрой завершена. В скором времени игра
станет доступна для приобретения.
А пока можно посмотреть обзор всех особенностей игры.
оцените статью:
0
0
игры, сервисы
играть
играть
случайный сайт
играть
видео-рассказ, уроки godot, виртуальный помощник по поиску информации
играть
читать
купить
скачать
игры Многоликий: dress - hordes эпизоды с 1 по 4
играть
скачать
купить
купить
игры, музыкальные клипы
скачать
скачать
смотреть
скачать/играть
музыкальный клип, игры
смотреть
играть
скачать
скачать
разработка игр, анимационный фильм, новогодняя дискотека 2020 - песни на итальянском, игра про лифт
смотреть
смотреть
смотреть
смотреть
игры, инструменты разработки, анимационный фильм, фильм.
купить
смотреть
смотреть
скачать
игры
скачать
скачать
скачать
купить
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере (3), создание музыки в браузере (1)
играть
играть
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
играть
играть
бк 0010.01 - играть!
играть
игры в браузере
играть
играть
играть
играть
игры в браузере (3), скачиваемые (1)
играть
играть
играть
скачать
игры в браузере
играть
играть
играть
играть
игры в браузере, скачиваемые игры
играть
скачать
играть
играть
игры в браузере
играть
играть
играть
играть
игры в браузере
Foxyland 2
quidget 2
играть
играть
полезный софт, игры в браузере
скачать
anova игра
A Knots Story
sabotage
сервисы, игры
24500 руб.
скачать
игра
играть
игры, программы
купить / скачать
купить
5500 руб.
скачать
поздравления, уроки рисования, уроки создания сайтов
читать
читать
читать
150 руб.
комиксы, музыка, рассказы
читать
читать
слушать
читать
игра для разработки, калькулятор услуг, cms, комикс
250 руб.
разработка на заказ
1250 руб.
350 руб.
игры для разработки, комиксы
скачать
читать
читать
скачать
игры шарики и ямки, комиксы про Костю Коробкина, ria xxl игра, fly snow 3d генератор эффектов снега, частиц и др. -
скачать
читать
150 руб.
350 руб.
Создай свою игру на fle game engine -
800 руб.
240 руб./скачать
скачать
скачать
Для создания сайта - модуль отзывов/комментариев для вашего сайта в составе megainformatic cms express files -
700 руб.
1250 руб.
150 руб.
500 руб.
Уроки Flash, бесплатные Flash - игры.
бесплатно
бесплатно
2500 руб.
14000 руб.
Поддержка сайтом нескольких языков (multi lang), создание собственной системы личных кабинетов, соц. сети или фриланс - биржи (megainformatic cms social), создание сервиса коллективных покупок на базе megainformatic cms groupon, онлайн сервис подсчёта статистики ключевых слов в статьях вашего сайта keywords gen + описание кода данного сервиса, с возможностью бесплатно реализовать его аналог на своём собственном сайте.
500 руб.
12000 руб.
14000 руб.
бесплатно
megainformatic.ru/webjob/ - сервис для фриланс проектов
- место встречи заказчиков и исполнителей
megainformatic.ru/webjob/ - сервис для фриланс проектов
- место встречи заказчиков и исполнителей
Системы управления сайтом, уроки
1250 руб.
бесплатно
550 руб.
500 руб.
megainformatic cms admin - простая и компактная система
для работы и управления сайтом
350 руб.
5800 руб.
3000 руб.
500 руб.
megainformatic cms free и серия продуктов - Уроки Photoshop
бесплатно
650 руб.
700 руб.
750 руб.
Данная серия посвящена описанию приемов и методов создания изображений,
с помощью инструментария программы Adobe Photoshop. Кроме того, многие
описанные средства могут вам помочь при освоении и многих других программ
для работы с растровой графикой - GIMP, Corel Photo Paint и других.
бесплатные игры 2d и 3d, а также эмулятор Ну, Погоди!
300 руб.
бесплатно
бесплатно
бесплатно
Это серия распространяемых бесплатно игр. Вы не только можете поиграть,
но и скачать исходники, получив тем самым возможность внести изменения
в игру или создать новую !!! (эмулятор Ну, Погоди! распространяется платно).
серия игр про Веселого Буквоежку, и бесплатно распространяемая игра
Нечто: Необъяснимое - в плену желаний
350 руб.
510 руб.
fle game engine
бесплатно
Здесь представлены новинки жанра - Говорящий Комикс, Настольная игра,
А также продукт, который позволит Вам научиться создавать игры самостоятельно.
Ну и конечно изюминка в своём роде - бесплатная игра - Нечто: Необъяснимое
- в плену желаний
Серия бесплатных онлайн уроков, посвященных 3ds max, photoshop, c++,
directx, delphi и php.
бесплатно
бесплатно
бесплатно
бесплатно
бесплатно
бесплатно
500 руб.
300 руб.
Описаны практические примеры решения различных задач, возникающих при
создании игр и сайтов.
Продукты Набор разработчика и Ваше Визуальное Шоу распространяются платно.
уроки и продукты различной тематики
бесплатно
бесплатно
бесплатно
400 руб.
Бесплатные Уроки Photoshop free, Бесплатные Уроки по программированию
на delphi directx - Как создать игру Ну, Погоди!, Бесплатная Авторская
музыка в формате mp3 - Музыкальные Миры, Платно распространяемый продукт
megainformatic cms express - система для быстрого создания Вашего сайта
на php + my sql.
Проекты игр, уроки
450 руб.
бесплатно
бесплатно
бесплатно
Игра Веселый Буквоежка, уроки delphi directx 8.1 для начинающих (описываются
основы 3d игр), моделируем девушку в 3d studio max, уроки музыки - пишем
музыку в Fruity Loops Studio
megainformatic
cms express files - это простое, быстрое и очень компактное решение
для создания первого вашего сайта. НЕ ИСПОЛЬЗУЕТ базы данных mysql.
Вместо этого используются файловые базы данных. Поэтому Вы
можете использовать систему даже на хостинге с поддержкой php, но
без поддержки баз данных my sql.
Очень
проста в установке - достаточно вам скопировать все файлы на ваш
хостинг и сайт готов к работе !!!
В комплект входят 3 готовых шаблона, модули поиска и карты сайта,
а также статьи по основам создания сайта.