11 июн. 2010 г.

Antichat Tetra

Перенеся весь главный код с Delphi на C++, я подумал, почему бы не взять "отпуск" и не написать, что либо быстро и попроще?

И так родилась идея о трехмерном тетрисе - Antichat Tetra.

Начал с площадки, где будут падать кубики.
Стоит обратить внимание, что со стороны камеры сетка (рабица) не рисуется.
Из камер я предпочел включить камеру от 3его лица (думаю от первого лица камера тут не уместна, хотя время покажет)




Добавил пол площадки, куда будут падать кубики



Тякс, а вот кубики, из которых будут состоять фигурки




А вот и готов генератор фигурок (пока что их у меня 7, но планирую 8ую как бонус).


Проверял заполняемость, понравилось, решил сделать скрин :D



Так немного поработал над логикой, фигурки падают на фигурки + нижний слой "сгорает", если полностью заполнен.


Сделал вылетающий биллборд при "сгорании" слоя


Готова пауза + вращение сцены вокруг площадки по оси Y при паузе


Сделал правое меню.

Исправил падение кубиков (под конец они сразу приземлялись).

Фух! Сделал рендер сцены в текстуру, которую потом вывожу. Для чего? А для того, чтобы сцена и правое меню раполагались правильно.



Сделал проверки на перемещения фигурок по X и Z осям. Работает отлично, правда немного раньше перемещается нежели хотелось бы.

Готова проверка на "конец игры"

Добавил сцену (освещение пока кривое).


Сделал стандартный вывод текста (к сожалению, БОЛЬШОМУ сожалению свой пока не написал)


Нафотошопил лого :)


Переделал лого и добавил в игру


Теперь можно видеть FPS
Сделал точечное освещение
Устанил проблему когда при нажатии Alt'a, останавливался рендер


При заставке теперь можно вбить ник (пока не принудительно :D)
Так же сделал подсчет очков и изменение цвета счета в зависимости от них.
Цвета взяты с форума http://forum.antichat.ru/thread17259.html


Так же подключил DirectSound к проекту и добавил 2а звука (фон и при сгорании слоя/слоёв).
Сделал остановку звука при деактивации окна, и возобновление проигрывания с момента остановки при активации.

Так же исправил баг с очисткой первого слоя.

Все ресурсы игры слиты в один файл.
Готова функция для подсчета MD5 файла.