Сначала я нарисовал куб.Теги: #walkers #Qt #opengl #Qt #Разработка игрПотом я подумал: «Давай загрузим карту».
В результате получается лабиринт. Давайте добавим панели! Давайте добавим огненные шары! А как же без вида от третьего лица? Где мультиплеер?! Так родилась игра Walkers
видео
Об игре
Как известно, каждый программист должен написать игру и чат. В конце концов я сделал и то, и другое.Однако под «чатом» я понимал добавление мультиплеера.
В результате получилась более-менее серьёзная игра, которую я хочу сейчас показать.
Ходоки.
Qt + OpenGL + (многопоточность + работа в сети + анимация)
Контроль
WASD - движение Стрелки — вращение камеры (можно использовать мышь в полноэкранном режиме) Сдвиг - садиться Космос - Прыгать В главном меню вы можете посмотреть записи.
Как устанавливается уровень
Файлы с уровнями хранятся в папке Levels. Количество уровней хранится в файле «param.walk», который после удаления восстанавливается с правильным номером.
- Сначала указывается количество строк и столбцов (N, M).
- Затем N строк по M символов каждая определяют статическую карту.
- '.
' - пол
- «Е» — закончить
- '0' - опасность (лава/вода/.
)
- '*' - стена
- «P» — стартовая позиция игрока.
Если символа «P» нет, то начальной позицией считается позиция (0, 0).
- После этого идет количество движущихся объектов и их описание.
Существует 3 типа движущихся объектов: Hpanel - периодически исчезающая панель, Mpanel - движущаяся панель, Fpanel - огненные шары.
- Hpanel: H x y <первая задержка> <первый интервал> <второй интервал> <начальное состояние (0/1)> Схема его работы следующая: сначала во время <первой задержки> будет <начальное состояние>, затем состояние изменится на <первый интервал>, затем оно изменится на <второй интервал>. После этого <первый интервал> и <второй интервал> будут чередоваться.
- Мпанель: M x y <PARAM> <PARAM> — строка, описывающая движение панели.
Допустимые символы: S (оставаться), UDLR (вверх, вниз, влево, вправо).
Важно помнить, что строка будет обрабатываться циклически.
После обработки последнего символа строки положение панели будет равно (x, y)!
- Fпанель: F <x*100> <y*100> <z*100> <r*100> <DIR> <time для прохождения одной ячейки> <cooldown> <distance*100> <first Delay> <sx * 100> <sy * 100> <sz * 100 .
Положение пусковой установки огненного шара указывается числами x, y, z. В параметрах необходимо указать эти числа, умноженные на 100. Все числовые параметры должны быть целыми числами.
r — радиус огненного шара.
<DIR> - направление (UDLR).
<cooldown> - интервал между запусками.
sx, sy, sz — масштабирование шаров.
Это позволяет запускать эллипсоиды.
расстояние - расстояние, на которое полетят шарики.
<first Delay> — параметр, позволяющий смещать шарики по направлению их полета.
- После этого текстуры установлены.
Все текстуры находятся в папке «Текстуры».
Указывается количество текстур, затем названия объектов и названия картинок.
Допустимые объекты:
- небо
- стена
- Выход
- пол
- Опасность
- скрытый
- движущийся
Уровни должны быть пронумерованы начиная с единицы.
Опубликованная версия имеет 13 уровней.
Я узнал:
И:
- Программа на С++
- Пишите проекты на Qt
- Работа с OpenGL
- Работа с сетью
- Написание многопоточных приложений
- Работа с матрицами
- Понял, как работает скелетная анимация.
- Я пробовал работать с Git
- И я усвоил очень важный урок: Вам нужно подумать о том, что будет в итоге, прежде чем вы сядете писать.
Итак, из-за того, что графика и вычисления находились в одном классе, мне пришлось изрядно потрудиться, чтобы разделить их на разные классы и запускать в отдельных потоках.
Что мое, что не мое.
Я не использовал готовые двигатели.
Однако текстуры и модели не мои.
Модель взята из Half-life. Если кто и не узнает героя, так это Барни.
Игра
Источники Линукс Окна
-
Реклама Firefox 3 На Главной Странице Ya.ru
19 Oct, 24 -
Российский Rfid-Датчик Для Дата-Центров
19 Oct, 24 -
Новая Страница Профиля В Живом Журнале.
19 Oct, 24 -
Проблема С Хостингом И Доменами
19 Oct, 24