![]() | 1. BRESS Репутация: 221 Сообщений на форуме: 3067 |
![]() | 2. Gracio001 Репутация: 184 Сообщений на форуме: 1837 |
![]() | 3. Xomafok Репутация: 172 Сообщений на форуме: 943 |
![]() | 4. FarEastKmS Репутация: 125 Сообщений на форуме: 350 |
![]() | 5. aHDp Репутация: 114 Сообщений на форуме: 724 |
![]() | 4.1 / 5.0 |
![]() | 4.0 / 5.0 |
![]() | 3.9 / 5.0 |
![]() | 3.9 / 5.0 |
![]() | 3.8 / 5.0 |
Топ игр составлен путем пользовательского голосования.
Если вы не согласны с какой-либо оценкой, примите участие и поставьте свой балл игре. Ваша оценка очень важна для нас ;)
|
Просмотров страницы: 4320 Рейтинг материала: |
- | - |
![]() |
Game Maker 8.1
Классика. Идеально подходит для создания простых 2D игр на PC. Требует активации. |
![]() |
Game Maker for Mac
Абсолютно та же программа, но только для пользователей Mac. Требует активации. |
![]() |
Game Maker Studio
Самая новая версия с возможностью кроссплатформенной разработки. Бесплатна. |
Так как чат открыт для всех, просьба отнестись с уважением к другим посетителям и не писать осознанно посты, оскорбляющие кого-либо, содержащие открытую рекламу/спам. Спасибо за понимание! :)
Главная » Статьи » Разработка игр |
Пишу без особой охоты, дабы, наконец, разъяснить тему трехмерности в Game Maker, поставить на ней жирнейшую точку и более никогда к ней не возвращаться. В этом, с позволения сказать, уроке я постараюсь наиболее понятно и наглядно объяснить, что такое 3D и с чем его едят на примере банальнейшего First Person Shooter (FPS). Ну что же, настроения у меня особо распинаться нет, так что погнали.
Пусть этот объект и будет у нас игроком. Создадим какой-нибудь спрайт, который в дальнейшем будет являться маской столкновений нашего игрока, и, собственно, присваиваем его нашему объекту. У меня такой спрайт будет представлять собой обыкновенный квадратик размером 16x16.
Собственно, первой строчкой мы создали переменную z, в которой будет храниться координата нашего игрока по известной оси (оси Z, коль кто не догнал). Говорю сразу, дабы не было недопонимания, что эта переменная условна, служит только для построения перспективы и не является реальным положением игрока в комнате (а то в прошлый раз замучали со своими вопросами, а-ля, «я изменил координату z до over 9999; почему я не могу перепрыгнуть через ящик?»). Второй строчкой мы попросту изменили цвет отрисовки, дабы все объекты в комнате не были выкрашены в матово черный цвет. Третьей строкой я просто изменил скорость комнаты для более плавного движения. Ну и последней строкой мы устанавливаем глубину объекта, дабы он всегда выполнялся первым (надо для корректной проекции в комнате).
Отчего-то все авторы уроков предпочитают понапихать в код установки проекции всяких синусов и косинусов, оставляя читателя разгадывать свои мотивы, как круги на кукурузных полях. Я же попытаюсь, наконец, объяснить как оно работает. Итак, для того, чтобы построить перспективную проекцию нам надо всего-то указать координаты самой камеры и координаты той точки, куда эта камера смотрит. Собственно, x, y и z - это и есть координаты нашей камеры. toX, toY и toZ - координаты той точки, куда мы смотрим. Ну а 0, 0 и 1… Да, совсем забыл сказать, что надо указать еще и верхнюю (главную) ось. Для того нам надо всего-то в одном из этих трех пунктов (x,y,z) поставить единицу. В нашем случае верхняя ось - z. ![]() Ну а теперь пару слов о том, как мы наши ту точку, куда смотрит наш игрок. Хотя, чего тут говорить? Взгляните на рисунок. При помощи функций lengthdir_x и lengthdir_y мы ищем на окружности O координаты точки, находящиеся на расстоянии в 1 у.е. и под углом, равным direction. А затем к найденной точке просто прибавляем текущую координату объекта. Вот и вся хитрость.
| ||||||||||
Категория: Разработка игр | Добавил: BRESS (25.08.2014)
| ||||||||||
Просмотров: 4320 | Комментарии: 3 | Рейтинг: 4.5/11 |
Всего комментариев: 3 | |
| |