И так, здравствуйте, новички и не совсем новички! Сейчас я попытаюсь научить вас создавать 3D игру. Делается это, хочу сказать не очень сложно (если не бежать за супер-сложной графикой и тому подобное). В общем, начинаем.
Шаг 1. Включение 3D режима. И так, чтобы создать 3D игру, конечно надо войти в 3D режим, а если быть более точным - в 3D пространство. Создаем объект o_cam, присвойте ему любой спрайт (но чтобы было проще ориентироваться - не пустой). В Create пишите:
Код
d3d_start()//Эта строчка весьма проста. Единственное ее предназначение - включить 3D режим.
Вход в 3D пространство осуществлен, но у нас нет ни движения, ни пола, ни поворота камеры. Исправим! Дописываем такие строчки:
Код
z=//Ваша высота "обзора" камеры, стандартное значение - от 10 до 20;
stepp=0;//Переменная, отвечающая за шаг. Будет использоваться позже, для поворота камеры.
Дальше идем к событию draw, пишем:
Код
d3d_set_projection(x,y,z,x+cos(direction*pi/180),y-sin(direction*pi/180),z-sin(stepp*pi/180),0,0,1)//Этот код для поворота камеры, без него не будет возможности вертеть камеру, и игрок будет смотреть только прямо
Идем дальше, теперь нужно создать пол. Загрузите текстуру, которую хотите использовать в качестве пола. Имя введите "b_floor" Создаем объект floor, спрайт ему не обязателен.
Пишем ему в Draw:
Код
d3d_draw_floor(0,0,0,room_width,room_height,0,background_get_texture(b_floor),24,24);//Чтобы не указывать размеры комнаты в числах, мы используем переменные room_width и room_height - это позволяет отрисовать пол на всю комнату, в независимости от размеров комнаты и разрешения экрана.
Отлично! Пол готов. Остался потолок. Создаем для него фон, называем b_potol. Все в тот же draw дописываем:
Код
d3d_draw_floor(0,0,64,room_width,room_height,64,background_get_texture(b_potol),room_width/16,room_height/16)// Смысл данного кода, я думаю, вам понятен.
Отлично! Мы все отрисовали, осталось движение и первый урок закончиться.
В step пишем:
Код
if keyboard_check(vk_right)
{x-=1}
if keyboard_check(vk_left)
{x+=1}
if keyboard_check(vk_down)
{y-=1}
if keyboard_check(vk_up)
{y+=1}}
Ну, вот, в принципе, и все. На этом наш урок окончен. Ждите второго урока, где мы научимся делать стены и какие-либо препятствия, врагов.