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 |
|
| |