forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Есть вопрос... (http://forum.boolean.name/showthread.php?t=17864)

DeN_93 11.02.2013 12:50

Есть вопрос...
 
Всем привет! Нужна ваша помощь:)
Допустим у меня есть танк противника, он катается по карте, поворачивает башню на игрока, стреляет все дела...:)
Эмм...смешно конечно, но башня поворачивается по команде PointEntity:-D
Отсюда несколько проблем:
*Если танк игрока находится выше/ниже танка противника башня творит чудеса:-D
*Так же она моментельно поворачивается, едва заметив игрока
*Ну и последнее...у неё просто идеальная точность!:-D

Может кто нибудь с этим делом помочь или хотя бы дать какой нибудь пример нормального поворота башни?
Зарание спасибо:)

HolyDel 11.02.2013 13:17

Ответ: Есть вопрос...
 
sign(DeltaYaw(turret,enemy)) * turret_speed

DeN_93 11.02.2013 13:33

Ответ: Есть вопрос...
 
Цитата:

Сообщение от HolyDel (Сообщение 252412)
sign(DeltaYaw(turret,enemy)) * turret_speed

Щас проверим! Спасибо!:)
Что то не получается...может я туплю, и что такое sign?

HolyDel 11.02.2013 13:45

Ответ: Есть вопрос...
 
значит sgn. или как там в блице узнать знак числа
для отрицательного дает -1
для положительного 1
для нуля - 0

DeN_93 11.02.2013 13:55

Ответ: Есть вопрос...
 
Цитата:

Сообщение от HolyDel (Сообщение 252416)
значит sgn. или как там в блице узнать знак числа

А, всё, ясно!:) я почему то думал что ты Sin так написал, долго думал причём тут он:-D

TurnEntity a\turret, 0, Sgn(DeltaYaw(a\turret, player)) * speed#, 0

Так всё отлично работает!:super: ещё раз спасибо!:)

Только теперь такая же проблема...но уже с дулом:-D

Colossus 18.02.2013 15:14

Ответ: Есть вопрос...
 
TurnEntity a\dulo, Sgn(DeltaPitch(a\turret, player)) * speed#, 0, 0

Не?

DeN_93 19.02.2013 13:27

Ответ: Есть вопрос...
 
Неа, так дуло вобще не поворачивается никуда, я пробовал))

RBK 19.02.2013 13:39

Ответ: Есть вопрос...
 
TurnEntity a\dulo, Sgn(DeltaPitch(a\dulo, player)) * speed#, 0, 0

Вот так попробуй.

DeN_93 19.02.2013 14:58

Ответ: Есть вопрос...
 
Цитата:

Сообщение от RBK (Сообщение 253142)
TurnEntity a\dulo, Sgn(DeltaPitch(a\dulo, player)) * speed#, 0, 0

Вот так попробуй.

В смысле я именно так и делал:)

Получается такая вот лажа....

FREE MAN 19.02.2013 18:12

Ответ: Есть вопрос...
 
Может быть так получится, DeN_93 попробуй.

Код:

yaw#=DeltaYaw#(Башня_танка,Игрок)
          If yaw>5 yaw=5
          If yaw<-5 yaw=-5
TurnEntity Башня_танка,0,yaw,0.


DeN_93 19.02.2013 19:45

Ответ: Есть вопрос...
 
Хах...решил я свою проблему:)
Оказывается я привязал дуло к телу, а не к башне, отсюда такие косяки:)
Так всё получается, только дуло жестоко трясёт:-D

impersonalis 15.03.2013 11:24

Ответ: Есть вопрос...
 
Цитата:

Сообщение от DeN_93 (Сообщение 252414)
и что такое sign?

;для некоторого x можно определить например так:
SGN=(x>0)-(x<0)

Reizel 15.03.2013 13:38

Ответ: Есть вопрос...
 
Погоди, погоди, в блице есть годная функция AlignToVector, или как то так. Покрути параметры, возможно ты найдешь нужную комбинацию. + там есть настройка коэффициента плавности выравнивания.

а чтоб убрать "идеальность", просто к вектору скорости снаряда добавляй в момент выстрела rnd(-n,n) по всем трем осям.

DeN_93 15.03.2013 15:51

Ответ: Есть вопрос...
 
Цитата:

Сообщение от Reizel (Сообщение 254956)
а чтоб убрать "идеальность", просто к вектору скорости снаряда добавляй в момент выстрела rnd(-n,n) по всем трем осям.

Спасибо!:) Как то не подумал об этом...:)

DeN_93 30.03.2013 12:21

Ответ: Есть вопрос...
 
Ещё такой вопрос, по Bullet'у:

Как сделать одно составное тело из двух мешей?
Вот что-то пытался, так ничего и не получилось....

Тело_танка=btBodyCreateConvexHull(Меш_танка,150,0)
Тело_башни=btBodyCreateConvexHull(Меш_башни,50,0)

Форма_столкновения=btShapeCreateCompound()
btShapeCompoundAddBody(Форма_столкновения,Тело_тан ка,0,0)
btShapeCompoundAddBody(Форма_столкновения,Тело_баш ни,0,0)

Игрок=btBodyCreateCompound(Форма_столкновения,200)
Тело_игрока=btBodyCompoundAddBody(Игрок,Тело_танка ,1,0,0)
Башня_игрока=btBodyCompoundAddBody(Игрок,Тело_башн и,1,0,0)

Получается что тело башни падает на тело танка и катится по нему вниз:dontknow:


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

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