microTanks
Общее описание поставленной задачи
Игровой уровень состоит из 2 башен и пространства между ними. Башни по очереди обстреливают друг друга различным оружием. Игра считается законченной, когда одна из башен будет уничтожена.

Обязательные условия:
1. Несколько видов оружия.
2. Различные сооружения в пространстве между башнями, мешающие обстрелу.
3. Таблица рекордов.

Дополнительные условия:
1. Препятствия разрушаются по частям.
2. Бонусы.
  • Ограничение по размеру - 1024 kb.
  • Конкурс проходит до 8 марта 2008.
  • Конкурс ведёт Makar Borisowitch.
Игра и управление
Игра представляет собой поединок двух танков (или танчиков, судя по их размеру:)) на веселой сельской местности. Ландшафт генерируется динамически, присутствует растительность в трех экземплярах - травка, елочки и большая травка :)
Танки по очереди пуляются в друг друга снарядом, победит тот, кто быстрее запуляет врага. Оружия доступно 4 вида (хотя именно на вид это одна и та же здоровенная пушечка), в первом раунде доступна самая простая пулялка. После выигранных раундов открываются другие пушки, вся разница между ними в наносимом уроне и скорости полета (как следствие более пологой траектории полета).
Компьютерному оппоненту в начале игры выдается самая простая пушка и немножко мозгов (совсем немножко, лишь бы себя сразу не убил %) ). Со сменой раундов его сознание крепчает, даются новые пушки. На 10м раунде он получит 4 пушку, далее он будет лишь умнеть, и бить, по возможности, без промаха. Управляется танчик просто, клавиши UP и DOWN управляют орудием, LEFT и RIGHT двигают танк. Стрельба осуществляется нажатием на 0 (на numpad-клавиатуре), Пробелом или Ctrl. Т.к. коллизии считаются довольно коряво, танчик может застрять или дергаться :)
Выбор оружия осуществляется щелчком по картинке в левом нижнем углу.
Исполнение
Игра написана на Delphi7 без дополнительных визуальных компонент.
Вывод графики осуществляется средствами GDI (через свой велосипедный класс, позволяющий блитить картинки с оптимизацией MMX). Для формирования графики используются оптимизированные функции написанные на встроенном ассемблере, возможно кому то они покажутся полезными:)
Вывод звука через библиотеку Bass.dll, MIDI через компонент (причем отличный!) написанный David Churcher.
Звуковые ресурсы были сперты из TotalAnnihilation (превосходные сочные бабахи с громовыми раскатами:)), midi - с какого то варезного сайта %)
Графические ресурсы почти все вытянуты из игры Tanks для PDA (собственно оттуда взята и идея заюзать танки).
Все ресурсы игры хранятся в сжатом виде (zlib), для распаковки смотрите соответствуюший метод у класса, который использует ресурс. Для самостоятельного компилирования скопируйте файлы ресурсов в папку с исходниками (или распакуйте их туда).
Игра не тормозила на PIV1.8, поэтому есть основания полагать, что тормозить она не должна:)
Canvas - рулез!!!
:)

PS. Немножко не хватило времени причесать игру (хотя бы кнопочки в меню доделать), но думаю даже как игра поделка удалась:)
© 2007 Науменко Антон
Desksoft.ru | Desksoft@gmail.com