Для тех кто видел мою предыдущую версию Minecraft сразу скажу, что это не развитие предыдущего безумия, это совершено новое и еще более безумное безумие, детали которого я раскрою под катом. В этот раз я старался вести себя поспокойнее и исправно пил лекарства чтобы санитары незападозрили неладное.
Для тех же кому понравился сам Minecraft я тоже приготовил сюрприз, добавил огонь, который так просили некоторые хабражители.
В игре присутствуют следующие блоки:
- Воздух
- Земля
- Огонь (с анимацией)
- Вода
ЛюбовьЛестница- Коренная порода
Возможности:
- Вода растекается и тушит огонь
- Огонь поджигает лестницы
- Гравитация
- Создание блоков
- Разрушение блоков земли
Картинка для привлечения внимания:
Управление:
- W S A D — движение персонажа
- W S A D + Shift — удаление блоков в соответствующем направлении
- 1 2 3 4 5 — создание блоков воздуха, земли, лестницы, воды и огня
Для компиляции использовал VisualStudio 2013.
Итак, вдохните глубже, отложите помидиры и яйца, они Вам еще пригодятся и взгляните на код:
Исходный код
Я думаю многие догадались что за способ уменьшения кода тут используется. Тут реализована простейшая виртуальная машина (виртуальный процессор) с минимальным набором команд, а код самой игры написан на байткоде этой машины и лежит в данных!
Поддерживаемые комманды:
- Сложение двух чисел
- Копирование блока данных
- Сравнение двух блоков данных и условный переход
- Позиционирование курсора в консоли
- Вывод в консоль блока данных
- Чтения нажатой клавиши
Чтобы писать код, пришлось написать свой компилятор(транслятор) и уже на нем писать саму игру.
Всем спасибо за внимание!
ссылка на оригинал статьи http://habrahabr.ru/post/203982/
Добавить комментарий