|
3D-программирование Вопросы, касающиеся программирования 3D мира |
11.10.2008, 19:33
|
#1
|
ПроЭктировщик
Регистрация: 09.10.2008
Адрес: Казань
Сообщений: 137
Написано 7 полезных сообщений (для 9 пользователей)
|
переменная + текст
блин проблемка нарисовалась....
допустим есть:
player = CreateCube()
player_pivot = CreatePivot()
а в переменной selected$ у меня храниться имя объекта по которуму я кликнул мышью (допустим player) а при нажатии на правую кнопку мыши нужно передвинуть не player а player_pivot...естественно в переменной selected$ будет храниться player и передвиниться сам куб, а надо к player добавить _pivot...как это зделать?
пробовал так:
selected$ = selected$+"_pivot" , но неполучаеться
|
(Offline)
|
|
11.10.2008, 19:38
|
#2
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: переменная + текст
Шо-то ты так отжог шо я даже не понимаю что тебе там надо
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
11.10.2008, 19:56
|
#3
|
ПроЭктировщик
Регистрация: 09.10.2008
Адрес: Казань
Сообщений: 137
Написано 7 полезных сообщений (для 9 пользователей)
|
Ответ: переменная + текст
у меня есть несколько объектов которые имеют по одному пивоту и называються они так: имя_объета_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
но так передвигаеться не пивот а сам куб
|
(Offline)
|
|
11.10.2008, 20:12
|
#4
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: переменная + текст
Артем, так не делается.
player и player_pivot это не имена объектов. Это так сказать имена их указателей.
ради интереса выведи selected$ на экран - ты будеш неприятно удивлен, нет там никакого player, будет какое то число.
есть две интересные команды NameEntity и EntityName - первая задает настоящее имя - вторая получает.
вот их и используй )
|
(Offline)
|
|
11.10.2008, 21:01
|
#5
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: переменная + текст
Артем, изучай типы
Без них ты стратегию не сделаешь
__________________
|
(Offline)
|
|
11.10.2008, 21:13
|
#6
|
ПроЭктировщик
Регистрация: 09.10.2008
Адрес: Казань
Сообщений: 137
Написано 7 полезных сообщений (для 9 пользователей)
|
Ответ: переменная + текст
спасибо за советы....буду учить
но я так и непонял как мне зделать
допустим я задам нейментити для player: NameEntity player,"tank"
и попробую передвинуть
PositionEntity EntityName(player),PickedX#(),PickedY#()+0.9,Picke dZ#()
также тоже неполучится
Последний раз редактировалось ArtemkA, 11.10.2008 в 21:21.
|
(Offline)
|
|
11.10.2008, 21:51
|
#7
|
|
Ответ: переменная + текст
ArtemkA
просто надо двигать
PositionEntity player,PickedX#(),PickedY#()+0.9,Picke dZ#()
|
|
|
11.10.2008, 21:52
|
#8
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: переменная + текст
Артем. код писать не буду, не из вредности, а чтобы ты сам думал.
логика такова:
CameraPick - возвращает хендл ентити
получаешь его имя
прибавляеш к его имени "_pivot"
ищешь ентити с новым именем
двигаешь его
|
(Offline)
|
|
11.10.2008, 22:13
|
#9
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: переменная + текст
Да думаю ему нужно дать толчок
пока не поймет принципа.
Наверное у него нет семплов блитца
Артем, есть такое понятие: хендл (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 без особой необходимости - она тебе понядобится для мгновенного доступа к элементу типа в дальнейшем.
А сейчас найди в факе тему про типы и читай
__________________
|
(Offline)
|
|
11.10.2008, 22:58
|
#10
|
ПроЭктировщик
Регистрация: 09.10.2008
Адрес: Казань
Сообщений: 137
Написано 7 полезных сообщений (для 9 пользователей)
|
Ответ: переменная + текст
Сообщение от HolyDel
Артем. код писать не буду, не из вредности, а чтобы ты сам думал.
логика такова:
CameraPick - возвращает хендл ентити
получаешь его имя
прибавляеш к его имени "_pivot"
ищешь ентити с новым именем
двигаешь его
|
я уже третий день думаю все никак придумать немогу...
|
(Offline)
|
|
11.10.2008, 23:16
|
#11
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: переменная + текст
Забей, не делай так черезжёпно
2 переменные заведи да и всё
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:23.
|