Четверг, 25 Апреля 2024, 03:01

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » 3D движки для разработки игр » 3D Rad » гонка при нажатии на клавишу Enter (помогите пожалуйста)
гонка при нажатии на клавишу Enter
kovlag66Дата: Четверг, 23 Августа 2012, 17:14 | Сообщение # 1
частый гость
Сейчас нет на сайте
Кто знает как сделать так чтобы когда подъехал к любой машине в городе и нажал на клавишу Enter ты с ним соревнуешься. Надо продержаться две минуты в лидерах и тогда ты побеждаешь и получаешь сколько-то денег. а если проиграл он забирает твои. Как в Need for speed Underground2. Пожалуйста.javascript://javascript://
Nasa13Дата: Суббота, 25 Августа 2012, 14:26 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Первое, что мы должны сделать, это проверить расстояние от нашей машины, до машины соперника

Code
/// Как определять расстояние между 2-мя объектами   
   /// Сделано Alec-ом 19 апреля 2011. http://3drad-alec.ucoz.com/   
   void Main()   
   {   
       Vector3 cameraLocation;// объявить переменную для местоположения камеры (машины)
       Vector3 meshLocation;// объявить переменную для местоположения "AI"(соперник)
       float distance;// объявить переменную для расстояния   
       iObjectLocation(OBJ_0,cameraLocation);// определить местоположение камеры  (машины)
       iObjectLocation(OBJ_3,meshLocation);// определить местоположение "AI"(соперник)
       distance = iVectorLength(meshLocation - cameraLocation); // получить расстояние   
   }


Теперь , мы долны сделать так, чтобы при нажатии на определенную кнопку(Интер), и если расстояние "небольшое", у нас происходило определенно действие.

Добавляем кнопку в наш скрипт

Code
/// Как определять расстояние между 2-мя объектами   
   /// Сделано Alec-ом 19 апреля 2011. http://3drad-alec.ucoz.com/   
   void Main()   
   {   
       Vector3 cameraLocation;// объявить переменную для местоположения камеры (машины)
       Vector3 meshLocation;// объявить переменную для местоположения "AI"(соперник)
       float distance;// объявить переменную для расстояния   
       iObjectLocation(OBJ_0,cameraLocation);// определить местоположение камеры  (машины)
       iObjectLocation(OBJ_3,meshLocation);// определить местоположение "AI"(соперник)
       distance = iVectorLength(meshLocation - cameraLocation); // получить расстояние   
       

if (iKeyDown(iKeyCode("DIK_A")) &&  distance<3)// я поставил ,чтобы действие происходило на кнопку "A", а расстояние было небольше 3-х
{
}
   }


Теперь сделаем так, чтобы появилась точка, куда ехать,для этого создадим PathFinder,сделаем все настройки для АИ, соединим его с нашим скриптом (заранее его нужно отключить ,убрать галочку с "Working at start")

Теперь, добавим действие, при нажатии на кнопку "А"(допишим скрипт)

Code
/// Как определять расстояние между 2-мя объектами   
   /// Сделано Alec-ом 19 апреля 2011. http://3drad-alec.ucoz.com/   
  Vector3 ObjectLocation;
   void Main()   
   {   
          Vector3 cameraLocation;// объявить переменную для местоположения камеры (машины)
       Vector3 meshLocation;// объявить переменную для местоположения "AI"(соперник)
       float distance;// объявить переменную для расстояния   
       iObjectLocation(OBJ_0,cameraLocation);// определить местоположение камеры  (машины)
       iObjectLocation(OBJ_3,meshLocation);// определить местоположение "AI"(соперник)
       distance = iVectorLength(meshLocation - cameraLocation); // получить расстояние   

if (iKeyDown(iKeyCode("DIK_A")) &&  distance<3)// я поставил ,чтобы действие происходило на кнопку "A"
{

iObjectStart(OBJ_0);// OBJ_0 = Pathfinder
iObjectLocation(OBJ_0,ObjectLocation);

ObjectLocation.x =  0.02;// Ставим здесь такие параметры
ObjectLocation.y =  41.02;//чтобы соперник двигался туда,
ObjectLocation.z =  3.02;// куда надо нам!

iObjectLocationSet(OBJ_0,ObjectLocation);
}
}


Теперь нам нужно получить деньги за то, что мы приехали первыми, если мы приехали первыми, можно делать такую систему, разными способами!!

Создадим ,во-первых, очки, точнее наши деньги.

Code
/// Как определять расстояние между 2-мя объектами   
   /// Сделано Alec-ом 19 апреля 2011. http://3drad-alec.ucoz.com/   
Vector3 ObjectLocation;

float Score = 239;// Деньги

   void Main()   
   {   
         Vector3 cameraLocation;// объявить переменную для местоположения камеры (машины)
       Vector3 meshLocation;// объявить переменную для местоположения "AI"(соперник)
       float distance;// объявить переменную для расстояния   
       iObjectLocation(OBJ_0,cameraLocation);// определить местоположение камеры  (машины)
       iObjectLocation(OBJ_3,meshLocation);// определить местоположение "AI"(соперник)
       distance = iVectorLength(meshLocation - cameraLocation); // получить расстояние   

if (iKeyDown(iKeyCode("DIK_A")) &&  distance<3)// я поставил ,чтобы действие происходило на кнопку "A"
{

iObjectStart(OBJ_0);// OBJ_0 = Pathfinder
iObjectLocation(OBJ_0,ObjectLocation);

ObjectLocation.x =  0.02;// Ставим здесь такие параметры
ObjectLocation.y =  41.02;//чтобы соперник двигался туда,
ObjectLocation.z =  3.02;// куда надо нам!
iObjectLocationSet(OBJ_0,ObjectLocation);

}
       
OUT_Х = Score;// выведем наши деньги на экран, при помощи ValuePrint (OUT_x = displayed value)
}


Теперь создадим еще одно условие, кто быстрее приедет до финиша, а именно, до Pathfinder

Code
/// Как определять расстояние между 2-мя объектами   
   /// Сделано Alec-ом 19 апреля 2011. http://3drad-alec.ucoz.com/   
Vector3 ObjectLocation;

float Score = 239;// Деньги

   void Main()   
   {   
       Vector3 cameraLocation;// объявить переменную для местоположения камеры (машины)
       Vector3 meshLocation;// объявить переменную для местоположения "AI"(соперник)

       Vector3 pathfinder; // создаем вектор , для нашего "поиска пути"

       float distance;// объявить переменную для расстояния   

       float distanceAi;//дистанцию для Аи делаем
       float distanceOurCar;// дистанцию для нашей машины делаем(переменную создаем)

       iObjectLocation(OBJ_0,cameraLocation);// определить местоположение камеры  (машины)
       iObjectLocation(OBJ_3,meshLocation);// определить местоположение "AI"(соперник)

iObjectLocation(OBJ_Х,pathfinder);// определяем для нашего "pathfinder"

distance = iVectorLength(meshLocation - cameraLocation); // получить расстояние   

distanceAi = iVectorLength(pathfinder - meshLocation); // получить расстояние для АИ

distanceOurCar = iVectorLength(pathfinder - cameraLocation); // получить расстояние для нас

if (iKeyDown(iKeyCode("DIK_A")) &&  distance<3)// я поставил ,чтобы действие происходило на кнопку "A"
{
iObjectStart(OBJ_0);// OBJ_0 = Pathfinder
iObjectLocation(OBJ_0,ObjectLocation);

ObjectLocation.x =  0.02;// Ставим здесь такие параметры
ObjectLocation.y =  41.02;//чтобы соперник двигался туда,
ObjectLocation.z =  3.02;// куда надо нам!
iObjectLocationSet(OBJ_0,ObjectLocation);
}

OUT_Х = Score;// выведем наши деньги на экран, при помощи ValuePrint (OUT_x = displayed value)

if(distanceAi <2)
{

iObjectStop(OBJ_XX) // останавливаем объект Pathfinder

// убираем наш поиск пути, дабы избежать багов

iObjectLocation(OBJ_Х,ObjectLocation);

ObjectLocation.x =  20.02;
ObjectLocation.y =  341.02;
ObjectLocation.z =  33.02;
iObjectLocationSet(OBJ_Х,ObjectLocation);

}
// если соперник дошел до финиша
if(distanceAi <2)
{

iObjectStop(OBJ_XX) // останавливаем объект Pathfinder

// убираем наш поиск пути, дабы избежать багов

iObjectLocation(OBJ_Х,ObjectLocation);

ObjectLocation.x =  20.02;
ObjectLocation.y =  341.02;
ObjectLocation.z =  33.02;
iObjectLocationSet(OBJ_Х,ObjectLocation);

   Score = Score - 100;// вычитаем нужну нам сумму...
}
// если мы дошли до финиша

if(distanceOurCar <2)
{

iObjectStop(OBJ_XX) // останавливаем объект Pathfinder

// убираем наш поиск пути, дабы избежать багов

iObjectLocation(OBJ_Х,ObjectLocation);

ObjectLocation.x =  20.02;
ObjectLocation.y =  341.02;
ObjectLocation.z =  33.02;
iObjectLocationSet(OBJ_Х,ObjectLocation);

   Score = Score + 100;// прибавляем сумму...
}

}


Могут быть ошибки, сообщите мне)


все люди одинаково полезны,говорил людоед туристам.

Мешает грудь? Спячь под "СПОЙЛЕР.*)

моя мини демка ,хоррор http://3drad-alec.ucoz.com/forum/6-39-1


Сообщение отредактировал Nasa13 - Суббота, 25 Августа 2012, 14:28
Форум игроделов » Движки для разработки игр и сложные системы разработки » 3D движки для разработки игр » 3D Rad » гонка при нажатии на клавишу Enter (помогите пожалуйста)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг