forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   кривая Птичка (http://forum.boolean.name/showthread.php?t=2215)

Horror 27.12.2006 23:07

кривая Птичка
 
Всем привет1 делаю бота (а точнее птичку[которая даже не атакует(пока)))])
да вот беда ! появляется она нормально! а как только начинает лететь к вей поинту поворачивается на 90градусов и незнаю почему! думал сделать пивотик и привизать ее туда (неполичолЪ, думаю эта птичка склювала серого червечка из моей головы)
помогите пожалуйсто))
вот код для создание этой твари и ее следование по вейпоинтам:
Код:


Global birdka=LoadAnimMesh("Models\animals\bird.3ds")
RotateEntity birdka,90,0,0
ScaleEntity birdka,1,1,1
HideEntity birdka
Type birdbot
Field bot_entity

End Type
Global bd.birdbot
Function create_bot_Bird(x#,y#,z#)
bd.birdbot=New birdbot
bd\bot_entity=CopyEntity(birdka)
PositionEntity bd\bot_entity,x#,y#,z#
Return True
End Function
Function Update_Bot_Bird(target_,botS)
speed#=1
RotateEntity botS,0,DeltaYaw#(target_,botS),0
MoveEntity botS,0,0,-speed#;
End Function
Function Update_Bird()
For wd.birdwaypoint = Each birdwaypoint
For bd.birdbot= Each birdbot
If (wd\waypoint_number=result_randomb) Then
target_=wd\waypoint_entity
If (EntityDistance(bd\bot_entity,wd\waypoint_entity)<Distance_Next_Waypoint) Then SeedRnd MilliSecs():result_randomb=Rnd(1,birdkol) ;
If (EntityDistance(bd\bot_entity,player)<0) Then target_=player
Update_Bot_Bird(target_,bd\bot_entity)
EndIf
Next
Next
End Function

Уточняю поворачивается она по вертикали!
ище вопросик как сделать чтобы эта птичка передвигалась
по синусу(косинусу) ну чтоб не просто прямо летела а плавненько вверх-вниз

moka 30.12.2006 00:54

Re: кривая Птичка
 
Вот почему по вертикали незнаю, а почему вообще поворачивается, так это потучто т двигаешь её на 1 удиницу, и последний толчок, может немного перебрать её вперёд, вот поэтому и вэйпойнт остаётся позади.

Сделай, что если дистанция меньше какого-то, установи что она уже достигла, и просто постепенно уменьшай скорость до 0.

Raiter 30.12.2006 01:03

Re: кривая Птичка
 
вверх-вниз делай через массив и проганяй его вперед-назад увеличивая/уменьшая координату Y пока она не достигнет мин/макс значения которое ты выбирешь ;)

moka 30.12.2006 01:12

Re: кривая Птичка
 
Геморно.
Вот мой варриант:
Создаём пивот, к нему птичку, птичку паррентим и отодвигаем немного от пивота. Затем каждй цикл поварачивай птичку на вэйпоинт и просто крути пивот, вроде так, может и непрально:
Код:

RotateEntity Pivot,Sin(Millisect()*.05)*180,Sin(Millisect()*.05)*180,Sin(Millisect()*.05)*180
Это будет её плавно крутить, и достаточно красиво, играй с множителями.

Horror 30.12.2006 12:00

Re: кривая Птичка
 
MoKa c первыв вопросом разобрался в 3дмакс(хотя я понял почему ее разворачивало [надобыло ротейтентити поменять на ротейтмешь])

а за второй спасибо,теперь она красиво летает)

Horror 30.12.2006 20:03

Re: кривая Птичка
 
Ну и снова вопрос! непонимаю почему если создаешь несколько ботов все они дружно ходят по одним и темже точкам! ни кто не делал ботов с вейпоинтами??

помогите пожалуйсто))
зарание спасибо!

ZanoZa 31.12.2006 02:26

Re: кривая Птичка
 
делал я. подумываю продолжить.
продумай систему вейпоинтов так, чтобы не было проблем хождением ботов по одинаковым вейпоинтам.

HolyDel 31.12.2006 02:41

Re: кривая Птичка
 
итак. если ВСЕ боты испольхуют ОДНУ И ТУ-ЖЕ схему вейпонтов, то стоило бы удивиться если-б они пошли разными путями, схема-же одна.
можно:
1) задать каждому боту свою схему (геморно)
2) создать несколько схем и боту всучивать рандомно одну из них (некрасиво).
пока все.

Horror 31.12.2006 13:30

Re: кривая Птичка
 
печально(
я пока сдел так что первый бот ходит от 1 до 5 вейпоинта второй 5 до 10 ... посделний от N-5 до N ну и в правду неочень смотрица) да и замарочено( все еще надеюсь что ктонить поможет)

moka 01.01.2007 22:56

Re: кривая Птичка
 
Сделай массив на вэйпоинты, где будешь задавать ближайшие вэйпойнты, к которым может пойти бот, и потом просто боту рандомь число, сколько всего есть варриантов пойти от этог7о фэйпоинта, и пускай его туда, попробуй просто в массиве задовать Ид число для каждого вэйпоинта и координаты, и ещё список с возможными путями. Наверное так.

Horror 02.01.2007 02:11

Re: кривая Птичка
 
Спасибо! сделал проще в тип еще переменныю добавил отвечающее за ето дело!
Теперь все работает) Тему мона закрыть)


Часовой пояс GMT +4, время: 01:22.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot