Главная | Форум | Мой профиль | Выход | RSS
Меню сайта
Мини-чат
200
Наш опрос
Расширение спектра деятельности. Тоесть принимать и по возможности помогать не только Ultimate 3D
Всего ответов: 298
Кабинет

Логин:
Пароль:
Поиск
Наши друзья
  • Официальный cайт U3D
  • Лучший сайт по GM
  • Сайт по геймдеву
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Реклама:

    Главная » Статьи » Начало

    ОлдДемо как начало часть II
    Статья по Ultimate3D часть 2 
    Эта статья про то как научится ставить в игру 3D модели и заставить их двигаться. 
    Но для начала вам следует прочитать 1 часть статьи. 
    Ещё вам надо скачать эту модель машины и поставить в папку с игрой.
    (думаю с этим вы разберётесь сами) 
    **********************************************
    Если вы уже прочитали статью и скачали 3D модель то давайте приступим 
    Открываем пример OldDemoGM7, создаём новый объект назовём его car там уже есть объект с таким названием переименуйте его например в car0.Открываем наш объект car создаём событие 'Создание (Create)',в действие вставьте 'выполнить код'
    и поставьте туда этот код:


    file='models\Nissan_350Z.3ds'; //Загрузка 3D модели в формате 3ds 
    z=2.7; //Координата по оси Z(высота объекта) 
    height=0; //Высота точки направления камеры 
    scalx=0.027; //Размер 3D модели по X
     scaly=0.027; //Размер 3D модели по Y 
    scalz=0.027; //Размер 3D модели по Z 
    sp=0; //Скорость объекта 
    wv=0; //Движение по вертикали 
    wh=0; //Движение по горизонтали 
    point1=0; 
    point2=0; 
    frame=9 //Фрейм 
    first_frame=0 //Начальный фрейм 
    last_frame=30 //Конечный фрейм 
    LoadMesh(0,0,0,0,0); //Скрипт загрузки 
    SetMaterialEnvironmentMap(6,15,0,0,0); //Скрипт Текстуры 
    instance_create(0,0,light_spot); //Создание света 


    примерно так:



    ну вот 3D модель мы уже создали и сделали переменные необходимые для движения и анимации.

    Теперь создаём новое событие 'Удаление (Destroy)' ,потом выполнить код,
    пишем:

    Destroy(0,0,0,0,0) //Скрипт 'удаление'

     теперь нужно сделать переход в режим управления машиной
     создаём событие 'Шаг (Step)', 
    создаём выполнить код:


    //При нажатии на Enter камера переходит на режим управление машиной
    if(point_distance(x,y,camera.x,camera.y)<8)
    if(camera.vehicle!=1)
    if(camera.vehicle!=2)
    if(camera.vehicle!=4)
    if(camera.vehicle!=5)
    if(camera.vehicle!=6)
      camera.vehicle=3-keyboard_check(vk_enter)*2;



    теперь ставим проверку переменной:
    применить к объекту camera
    variable=vehicle
    value=1
    operation=equal to

    А вот и само управление
    создаём выполнить код:

    //Управление 
    if(keyboard_check(vk_up))  
    if(sp>-3)
      sp-=0.03;  
    if(keyboard_check(vk_down))
    if(sp<2){
      if(sp<0)
      sp=0;
      if(sp>=0)
      sp+=0.02;}
    if(keyboard_check(vk_left))
      roty+=1.5*sp;
    if(keyboard_check(vk_right))
      roty-=1.5*sp;
    //Анимация  
      if(sp!=0)
      frame=-abs(sp)*4.1;
    if(sp>0){
      first_frame=30;
      last_frame=0;}
    if(sp<0){
      first_frame=0;
      last_frame=30;}
    //Движения
    wa=-roty+90;
    ra=6.283185307*wa/360;
    ve=sin(ra)*sp;
    ho=cos(-ra)*sp;
    if(ho>wh)
      wh=wh+0.1;
    if(howv)
      wv=wv+0.1;
    if(ve0)
      sp=sp-0.01;
    if(sp<0)
      sp=sp+0.01;
    if not(keyboard_check(vk_down))
    if not(keyboard_check(vk_up))
    if(sp>-0.06)
    if(sp<0.06){
      sp=0;
      wh=0;
      wv=0;}
    if(z-1>point2){
      x+=wh;
      y+=wv;}
    else{
      x+=cos(-ra);
      y+=sin(ra);
      sp=0;
      wh=0;
      wv=0;}

    if(point1=-1)
      point1=-GetDistanceToModel(island,x,y,0,90,0);
    point2=-GetDistanceToModel(island,x+sin(degtorad(roty))*-8,y+cos(degtorad(-roty))*-8,0,90,0);
    point3=-GetDistanceToModel(island,x+sin(degtorad(roty+90))*5,y+cos(degtorad(-roty-90))*5,0,90,0);
    if(point1!=-100000)
      z=point1+3.2;
    if(point1=0)
      z=2.7;
    else
    if(z-1>point2)
    if(point1!=-100000)
    if(point2!=-100000)
    if(point3!=-100000){
      rotx=180-point_direction(0,0,-8,point1-point2);
      rotz=point_direction(0,0,5,point1-point3);}
    if(point1=-100000)
    or(point2=-100000)
    or(point3=-100000){
      rotx=0;
      rotz=0;}
    point1=-1;

    camera.follow=id;
    camera.distance=15;
    //при нажатии на Shift выходит из режима управление машиной
    if(keyboard_check(vk_shift)){
      sp=0; //скорость=0
      wh=0; //Движение по горизонтали=0
      wv=0; //Движение по вертикали=0 
      camera.height=6; //высота камеры=6
      camera.vehicle=0;//режим камеры=нету (варианты режимов вы найдёте в 1 части )
      camera.follow=0;
    }


    создаём выполнить код:

    //Движение и направление света

    light_spot.x=x;

    light_spot.y=y;
     light_spot.z=z;
     light_spot.rotx=rotx;
     light_spot.roty=roty+180;

    with(light_spot){
    Step();
    }


    создаём выполнить код:

    Step(0,0,0,0,0) //Скрипт 'шаг'



    Теперь осталось только поставить объект в комнату и запустить игру.
    а вот ещё что не забудьте в объектах house и rail изменить столкновения с объектом 'car0' на ваш объект 'car' 

    Ну вот и всё, по крайне мере всё то что касается загрузка моделей и их движение
    вот скриншот



    P.S. желательно что бы вы переписали эти коды, а не копировали что бы понять и запомнить их .
    Автор: ASD_W_GAMES
    Категория: Начало | Добавил: asd_w_games (06.06.2009) | Автор: ASD_W_GAMES
    Просмотров: 1399 | Рейтинг: 5.0/1
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]

    Школа Ultimate3D 2009-2010 год