18.04.2014, 09:28
|
#1
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Beam Box - исходники
Всем привет.
Выкладываю исходники своего проекта Beam Box.
Теоретически, можно сделать игрушку из этого, но я пас.
Делал 2 года назад, сегодня немного подправил для публики.
Описание:
[Суть]
Есть поле с цветными кубиками и есть стержень.
Суть в том, чтобы сбрасывать кубики одинакого цвета, выстраивая их в линии по горизонтали и вертикали.
Чтобы выстроить кубы, нужно их двигать.
Чтобы двигать, нужно нанизывать их на стержень, и двигать стержень с нанизанными кубами на нужное место.
В горизонтальной плоскости сброс осуществляется по трафарету - заранее заданной фигуре.
[Управление]
1. Клавиатура
Стрелки курсора / WASD - двигать стержень в стороны
CTRL + Стрелки курсора - двигать и поворачивать камеру
ALT + Стрелка вперёд/назад - поменять угол наклона камеры
Пробел или Shift (удержание) - нанизать куб на стержень
Пробел или Shift (кратковременно) - сбросить куб со стержня (если такой же цвет снизу)
2. Геймпад
[Сброс кубов]
Сброс кубов возможен как в вертикальной, так и в горизонтальной плоскости.
В вертикальной плоскости сброс осуществляется при составлении в столбик нужного числа кубов, число указано на 2д-табло.
Если вместо количества стоит звёздочка (*), то в этой клетке сброс осуществляется вручную повторным кратковременным нажатие на пробел или шифт; таким образом, здесь можно сбросить любое количество кубов.
В горизонтальной плоскости сброс осуществляется по трафарету - некоторой заданной фигуре, которая отображается на экране. Проверка трафарета начинается с верхнего левого угла группы кубов, собранных в кучу (одноцветные + касаются друг друга боками).
За сбор фигуры нужного цвета даётся больше очков.
При сбросе трафарета учитывается общее число кубов в фигуре, т.е. можно по вертикали ставить, и потом сбросить трафарет.
Сброс происходит при таком угле поворота камеры, при котором фигура выглядит так же как на 2д-проекции.
Если встать стержнем на пустое место, то
1. если есть куб, то он падает в дырку
2. если стержень пуст, то его вместительность уменьшается на 1
[Плюшки в коде]
Движение по меню и стержня с залипанием кнопок - зажал влево и стержен поедет влево пока не дойдёт до края или кнопку не отпустишь и т.п.
Движение стержня всегда одинаково при повороте игрового поля разными сторонами.
Автоповорот камеры до нужного угла из текущей позиции.
Отображение информации игрового поля в 2д с учётом поворота камеры.
Проверка на совпадение с трафаретом с учётом поворота камеры (определяется регион кубов включая последний поставленный, и в регионе проверка, а не по всему полю)
Движение точки по повёрнутому овалу, 2д в главном меню
(всего 2 тыщи строк, не много)
Картинки:
Видео:
Скачать:
|
(Offline)
|
|