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

ArtemkA 11.10.2008 19:33

переменная + текст
 
блин проблемка нарисовалась....

допустим есть:

player = CreateCube()
player_pivot = CreatePivot()

а в переменной selected$ у меня храниться имя объекта по которуму я кликнул мышью (допустим player) а при нажатии на правую кнопку мыши нужно передвинуть не player а player_pivot...естественно в переменной selected$ будет храниться player и передвиниться сам куб, а надо к player добавить _pivot...как это зделать?

пробовал так:

selected$ = selected$+"_pivot" , но неполучаеться

ABTOMAT 11.10.2008 19:38

Ответ: переменная + текст
 
Шо-то ты так отжог шо я даже не понимаю что тебе там надо

ArtemkA 11.10.2008 19:56

Ответ: переменная + текст
 
у меня есть несколько объектов которые имеют по одному пивоту и называються они так: имя_объета_pivot например:

player = CreateCube() ; объект
player_pivot = CreatePivot() ; пивот к объекту

tank = CreateCube() ; объект
tank_pivot = CreatePivot() ; пивот к объекту

допустим я выбиру player и когда я нажму правой кнопкой мыши по пространству, то передвинуться должен не player, а его пивот т.е. player_pivot.

пример:
допустим тут я кликнул по player
If MouseHit(1) Then
mov = CameraPick(camera,MouseX(),MouseY())
selected$ = mov
If selected$ = player Then mov = 1 : EntityColor player,0,128,255 Else EntityColor player,128,128,255
EndIf

selected$ будет содержать "player"

If MouseDown(2) Then
If mov <> pol Then
PositionEntity selected$+"_pivot",PickedX#(),PickedY#()+0.9,Picke dZ#()
EndIf
EndIf

но так передвигаеться не пивот а сам куб

HolyDel 11.10.2008 20:12

Ответ: переменная + текст
 
Артем, так не делается.

player и player_pivot это не имена объектов. Это так сказать имена их указателей.
ради интереса выведи selected$ на экран - ты будеш неприятно удивлен, нет там никакого player, будет какое то число.

есть две интересные команды NameEntity и EntityName - первая задает настоящее имя - вторая получает.
вот их и используй )

tormoz 11.10.2008 21:01

Ответ: переменная + текст
 
Артем, изучай типы
Без них ты стратегию не сделаешь

ArtemkA 11.10.2008 21:13

Ответ: переменная + текст
 
спасибо за советы....буду учить

но я так и непонял как мне зделать
допустим я задам нейментити для player: NameEntity player,"tank"

и попробую передвинуть
PositionEntity EntityName(player),PickedX#(),PickedY#()+0.9,Picke dZ#()

также тоже неполучится

jimon 11.10.2008 21:51

Ответ: переменная + текст
 
ArtemkA
просто надо двигать
PositionEntity player,PickedX#(),PickedY#()+0.9,Picke dZ#()

HolyDel 11.10.2008 21:52

Ответ: переменная + текст
 
Артем. код писать не буду, не из вредности, а чтобы ты сам думал.

логика такова:
CameraPick - возвращает хендл ентити
получаешь его имя
прибавляеш к его имени "_pivot"
ищешь ентити с новым именем
двигаешь его

tormoz 11.10.2008 22:13

Ответ: переменная + текст
 
Да думаю ему нужно дать толчок
пока не поймет принципа.

Наверное у него нет семплов блитца

Артем, есть такое понятие: хендл (Handle) объекта.
Это "ручка" за которую ты его таскаешь в коде.

Например:
a=LoadMesh(patch$)
b=CreateCube()
c=CreatePivot()

Теперь в переменных а в с у нас хендлы объектов
в а - загруженная модель
в в - созданый куб
в с - созданая виртуальная точка - пивот

Ты можешь совершать манипуляции с этими объектами обращаясь к переменной, содержащей хендл:
PositionEntity a,1,0,30.4
MoveEntity b,0,0,4
TranslateEntity c,0,3,0

new_var=a

RotateEntity new_var,90,0,0

Избегай пользоваться NameEntity без особой необходимости - она тебе понядобится для мгновенного доступа к элементу типа в дальнейшем.

А сейчас найди в факе тему про типы и читай

ArtemkA 11.10.2008 22:58

Ответ: переменная + текст
 
Цитата:

Сообщение от HolyDel (Сообщение 88622)
Артем. код писать не буду, не из вредности, а чтобы ты сам думал.

логика такова:
CameraPick - возвращает хендл ентити
получаешь его имя
прибавляеш к его имени "_pivot"
ищешь ентити с новым именем
двигаешь его

я уже третий день думаю все никак придумать немогу...

ABTOMAT 11.10.2008 23:16

Ответ: переменная + текст
 
Забей, не делай так черезжёпно
2 переменные заведи да и всё


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

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