Продолжаем делать игры
Никогда не думал, что это может кому-то понравится, но уже 4 лайка под прошлым постом, и я думаю, что можно и дальше писать тут небольшие заметки.
Скажу честно, даже для моего уровня код для Deadly Cubes From Outer Space Attack (ниже ссылка на пост) написан плоховато, поэтому в голову пришла идея сверстать нормальный мини-движок с понятной структурой и возможностью делать на нем всякое.
Начнем с основных требований, это кратко: небольшие легковесные 2D проекты (на самом деле не только 2D, но напишем так), а также кроссплатформенность, как минимум Win и MacOS.
Чтож, приступим. Немного "архитектуры". У нас с фантазией все в порядке, поэтому базовый класс назовем GAME. Он будет принимать параметры игры, отслеживать её состояние и рендерить. Немного кода для тех, кому интересно (ну и заметка от этого коуче выглядит):
Но надо же что-то рисовать! Скажете Вы, и это верно. Следующей гранью нашего бриллианта станет класс SPRITE. Он будет базовым и его функционал будет сводиться к загрузке изображений, проигрыванию анимации, размещении в конкретном месте на экране и масштабировании. Ещё немного кода для крутости:
В общем в основу нашего рендера лягут 3 базовых слоя: фон, который не будет реагировать на коллизии, акторы, в число которых войдут все подвижные и интерактивные игровые объекты, а сверху все накроется кнопками и текстом (UI). Не возможно без картинки, так что вот:
Собираем наше чудо и получаем прелестного котика из интернета на романтично-синем фоне:
а, может, лучше больше котиков?
Дальше - больше: запустим анимацию и перейдем к созданию стандартных классов для конструирования игры)