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=18136)

CostUm 03.05.2013 00:09

местоположение
 
Объясните как делать относительное местоположение объекта, на пример положение куба относительно сферы

ABTOMAT 03.05.2013 02:30

Ответ: местоположение
 
http://blitzetc.ru/index.php/Blitz3D...A:EntityParent

Владислав 03.05.2013 11:07

Ответ: местоположение
 
координаты одного объекта - координаты другого
entityx(cube) - entityx(sphere)

CostUm 03.05.2013 13:35

Re: Ответ: местоположение
 
Цитата:

Сообщение от ABTOMAT (Сообщение 258324)

помимо привязки мне нужно что бы объект был в относительном положении сферы, которая движется

H@NON 03.05.2013 14:35

Ответ: местоположение
 
TformVector в помощь.
Код:

TformVector 0,0,1, sphere, 0
Тут мы указываем относительные координаты 0,0,1 от координат сферы и переводим их в глобальные координаты системы (либо можно указать объект и получить координаты относительные его)

CostUm 03.05.2013 19:12

Re: местоположение
 
задам вопрос не по теме, как сделать чтобы Pick производился только один раз? т.е. я юзаю функцию CameraPick на предмет, и при нажатии кнопки происходит действие, но мне надо чтобы более 1-ого раза действие больше не выполнялось

H@NON 03.05.2013 19:19

Ответ: местоположение
 
проверяй нажатие кнопки не KeyDown, а KeyHit. Он единожды возвращает нажатие кнопки

CostUm 03.05.2013 19:23

Re: местоположение
 
у меня так и стоит, ну только MouseHit(1)
может понял не так, мне надо что бы 1 раз мог нажать, но больше уже нет

H@NON 03.05.2013 19:29

Ответ: местоположение
 
заводишь глобальную переменную
pickMode = True
Затем проверяешь так :
Код:

If MouseHit(1) Then
    If pickMode = True Then
        pick = CameraPick()
        pickMode = False
    EndIf
Endif


CostUm 03.05.2013 19:37

Re: местоположение
 
как то это не то вроде) вот вообщем как я делаю:

...
pick=CameraPick(cam,MouseX(),MouseY())
...


If pick=cub2
If MouseHit(1) lv=lv+100
Text 380,700,"Найжми для действия"
EndIf

H@NON 03.05.2013 19:44

Ответ: местоположение
 
А если логически подумать ?

Код:

If pick=cub2
if pickMode = True Then
    Text 380,700,"Найжми для действия"
    If MouseHit(1) Then
        lv=lv+100
        pickMode = False
    EndIf
EndIf
EndIf


CostUm 03.05.2013 19:47

Re: местоположение
 
почему-то не работает, но теперь вообще ничего

Nex 04.05.2013 07:41

Ответ: Re: местоположение
 
Цитата:

Сообщение от CostUm (Сообщение 258371)
почему-то не работает, но теперь вообще ничего

Глобальную переменную завел?
Код:

Global pickMode = True

CostUm 05.05.2013 00:25

Re: местоположение
 
извиняюсь за ещё один вопрос не по теме, но всё таки как сделать действие на несколько секунд? к примеру высвечивающаясь надпись секунд на 5, затем пропадая

ABTOMAT 06.05.2013 03:45

Ответ: местоположение
 
Заведи переменную, в которой будешь хранить время до исчезновения надписи. Отнимай из неё deltaTime каждый цикл.
В цикле показывай надпись только если та переменная > 0.
Соответственно, если ты её установишь, например, в 5000, то каждый цикл будет из неё отниматься сколько-то, и пока она не достигнет нуля, надпись будет показываться.


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

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