|
3D-программирование Вопросы, касающиеся программирования 3D мира |
27.12.2006, 23:07
|
#1
|
Бывалый
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений (для 110 пользователей)
|
кривая Птичка
Всем привет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
Уточняю поворачивается она по вертикали!
ище вопросик как сделать чтобы эта птичка передвигалась
по синусу(косинусу) ну чтоб не просто прямо летела а плавненько вверх-вниз
|
(Offline)
|
|
30.12.2006, 00:54
|
#2
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: кривая Птичка
Вот почему по вертикали незнаю, а почему вообще поворачивается, так это потучто т двигаешь её на 1 удиницу, и последний толчок, может немного перебрать её вперёд, вот поэтому и вэйпойнт остаётся позади.
Сделай, что если дистанция меньше какого-то, установи что она уже достигла, и просто постепенно уменьшай скорость до 0.
|
(Offline)
|
|
30.12.2006, 01:03
|
#3
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Re: кривая Птичка
вверх-вниз делай через массив и проганяй его вперед-назад увеличивая/уменьшая координату Y пока она не достигнет мин/макс значения которое ты выбирешь
|
(Offline)
|
|
30.12.2006, 01:12
|
#4
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: кривая Птичка
Геморно.
Вот мой варриант:
Создаём пивот, к нему птичку, птичку паррентим и отодвигаем немного от пивота. Затем каждй цикл поварачивай птичку на вэйпоинт и просто крути пивот, вроде так, может и непрально:
RotateEntity Pivot,Sin(Millisect()*.05)*180,Sin(Millisect()*.05)*180,Sin(Millisect()*.05)*180
Это будет её плавно крутить, и достаточно красиво, играй с множителями.
|
(Offline)
|
|
30.12.2006, 12:00
|
#5
|
Бывалый
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений (для 110 пользователей)
|
Re: кривая Птичка
MoKa c первыв вопросом разобрался в 3дмакс(хотя я понял почему ее разворачивало [надобыло ротейтентити поменять на ротейтмешь])
а за второй спасибо,теперь она красиво летает)
|
(Offline)
|
|
30.12.2006, 20:03
|
#6
|
Бывалый
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений (для 110 пользователей)
|
Re: кривая Птичка
Ну и снова вопрос! непонимаю почему если создаешь несколько ботов все они дружно ходят по одним и темже точкам! ни кто не делал ботов с вейпоинтами??
помогите пожалуйсто))
зарание спасибо!
|
(Offline)
|
|
31.12.2006, 02:26
|
#7
|
Элита
Регистрация: 02.10.2005
Сообщений: 1,789
Написано 132 полезных сообщений (для 252 пользователей)
|
Re: кривая Птичка
делал я. подумываю продолжить.
продумай систему вейпоинтов так, чтобы не было проблем хождением ботов по одинаковым вейпоинтам.
|
(Offline)
|
|
31.12.2006, 02:41
|
#8
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: кривая Птичка
итак. если ВСЕ боты испольхуют ОДНУ И ТУ-ЖЕ схему вейпонтов, то стоило бы удивиться если-б они пошли разными путями, схема-же одна.
можно:
1) задать каждому боту свою схему (геморно)
2) создать несколько схем и боту всучивать рандомно одну из них (некрасиво).
пока все.
|
(Offline)
|
|
31.12.2006, 13:30
|
#9
|
Бывалый
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений (для 110 пользователей)
|
Re: кривая Птичка
печально(
я пока сдел так что первый бот ходит от 1 до 5 вейпоинта второй 5 до 10 ... посделний от N-5 до N ну и в правду неочень смотрица) да и замарочено( все еще надеюсь что ктонить поможет)
|
(Offline)
|
|
01.01.2007, 22:56
|
#10
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: кривая Птичка
Сделай массив на вэйпоинты, где будешь задавать ближайшие вэйпойнты, к которым может пойти бот, и потом просто боту рандомь число, сколько всего есть варриантов пойти от этог7о фэйпоинта, и пускай его туда, попробуй просто в массиве задовать Ид число для каждого вэйпоинта и координаты, и ещё список с возможными путями. Наверное так.
|
(Offline)
|
|
02.01.2007, 02:11
|
#11
|
Бывалый
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений (для 110 пользователей)
|
Re: кривая Птичка
Спасибо! сделал проще в тип еще переменныю добавил отвечающее за ето дело!
Теперь все работает) Тему мона закрыть)
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:45.
|