|
3D-программирование Вопросы, касающиеся программирования 3D мира |
28.03.2011, 21:26
|
#1
|
AnyKey`щик
Регистрация: 04.12.2010
Адрес: Санкт-Петербург
Сообщений: 14
Написано 4 полезных сообщений (для 9 пользователей)
|
Наборное устройство
Всем привет! Нужна помощь в реализации набора адреса, как в этом ролике))) help! Как это вообще можно сделать?
|
(Offline)
|
|
28.03.2011, 21:33
|
#2
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Наборное устройство
Делаешь модель, делаешь имена каждой кнопочке, затем именуешь их соответственно, затем в блице, грузишь модель с чайлдами, и делаешь CameraPick прицелу. При этом пикай постоянно, чтобы определить куда целится камера, чтобы отрисовывать спрайты кнопок если ты хочешь как в ролике.
При пике, определяешь какой объект, имя энтити должно нести нужную тебе инфу.
Собственно зная на какой объект целишься, по клику - будет нажатие определённой кнопки.
Лучше конкретнее изложи, что не получается, или где не хватает знаний, вырази словами рассуждения по реализации подобного, будет проще помочь.
|
(Offline)
|
|
29.03.2011, 07:40
|
#3
|
AnyKey`щик
Регистрация: 04.12.2010
Адрес: Санкт-Петербург
Сообщений: 14
Написано 4 полезных сообщений (для 9 пользователей)
|
Ответ: Наборное устройство
Дело в том, что я совсем недавно начал осваивать blitz)
грузишь модель с чайлдами
|
Я так понимаю речь идет о команде "FindChild"
Я сделал тестовую модель, экспортировал в X формат, но blitz что-то не хочет искать дочерние объекты)) Или я что-то неправильно делаю? хм)) А формате 3ds все видит))) Такс... с чайлдами вроде разобрался))
Вот что получилось
dhd=LoadAnimMesh("dhd.3ds")
pan=FindChild(dhd,"pan")
b1=FindChild(dhd,"b01")
b2=FindChild(dhd,"b02")
b3=FindChild(dhd,"b03")
b4=FindChild(dhd,"b04")
b5=FindChild(dhd,"b05")
b6=FindChild(dhd,"b06")
b7=FindChild(dhd,"b07")
b8=FindChild(dhd,"b08")
|
Такс... сделал так, что бы появлялась картинка по наведению на кнопку, но вот только понятия не имею, как сделать так, что бы при наведении на другую кнопку появлялась другая картинка(((
Последний раз редактировалось Keypa, 29.03.2011 в 09:45.
|
(Offline)
|
|
29.03.2011, 12:01
|
#4
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Наборное устройство
Такс... сделал так, что бы появлялась картинка по наведению на кнопку, но вот только понятия не имею, как сделать так, что бы при наведении на другую кнопку появлялась другая картинка(((
|
Вешаешь на каждый КАРТИН тригер,,если он равен 1,то отображаем её,если =0 то нет,(лучше ето тупаком делать)
|
(Offline)
|
|
29.03.2011, 12:02
|
#5
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Наборное устройство
b1=FindChild(dhd,"b01")
b2=FindChild(dhd,"b02")
b3=FindChild(dhd,"b03")
b4=FindChild(dhd,"b04")
b5=FindChild(dhd,"b05")
b6=FindChild(dhd,"b06")
b7=FindChild(dhd,"b07")
b8=FindChild(dhd,"b08")
|
массив же
local b%[8]
for i=2 to 8
b[i]=FindChild(dhd,"b0"+str(i))
next
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
29.03.2011, 12:08
|
#6
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Наборное устройство
b1=FindChild(dhd,"b01")
b2=FindChild(dhd,"b02")
b3=FindChild(dhd,"b03")
b4=FindChild(dhd,"b04")
b5=FindChild(dhd,"b05")
b6=FindChild(dhd,"b06")
b7=FindChild(dhd,"b07")
b8=FindChild(dhd,"b08")
массив же
local b%[8]
for i=2 to 8
b[i]=FindChild(dhd,"b0"+str(i))
next
|
яб в тупе загнал..
|
(Offline)
|
|
29.03.2011, 13:16
|
#7
|
AnyKey`щик
Регистрация: 04.12.2010
Адрес: Санкт-Петербург
Сообщений: 14
Написано 4 полезных сообщений (для 9 пользователей)
|
Ответ: Наборное устройство
local b%[8]
for i=2 to 8
b[i]=FindChild(dhd,"b0"+str(i))
next
|
impersonalis, а можно по подробнее?))) Почему именно так... точнее, какая разница? Объясните если не сложно) То что этот код выполняет я понял))
Костян, в тупе???
|
(Offline)
|
|
29.03.2011, 13:37
|
#8
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,361
Написано 2,473 полезных сообщений (для 6,856 пользователей)
|
Ответ: Наборное устройство
Сообщение от Keypa
impersonalis, а можно по подробнее?))) Почему именно так... точнее, какая разница? Объясните если не сложно) То что этот код выполняет я понял))
|
Лучше один массив чем много переменных.
Можно заполнить/считать его циклом.
Да и наглядние это.
Сообщение от Keypa
Костян, в тупе???
|
Он почти всегда непонятно пишет. А имел в виду он скорее всего Type - Типы. Костян имел в виду использование "типа" заместо массива.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
29.03.2011, 13:49
|
#9
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Наборное устройство
Кеура, в твоём участке кода, где ты находишь дочерние объекты, 8 строк, и есть закономерность. Если ты захочешь их всех по очереди перебрать, это будет не так и просто.
А с массивом намного проще. Смотри, доступ к переменной теперь будет посредством индекса, например если тебе нужно проверить если объект который нажали, будет цикл:
Глобальная переменная, хранит индекс кнопки, которая была наведёна, чтобы при отведении, скрыть её спрайт.
Далее в цикле мы присваиваем временную переменную (я обычно присваивал, а не ссылался к функциям, как-то внушает больше доверия.
Затем проверяем, если объект на который навели уже не тот что в прошлый раз, тогда скрываем тот что был, и идём дальше. Либо если вообще нету наведённого (равен нулю), тогда пропускаем скрытие. Далее перелистываем массив объектов (button), и если объект равен тому на который камера нажала, показываем спрайт (spriteNumber) с числом, который заранее был поставлен на позицию чуть выше кнопки и спрятан.
Если хоть один объект наведён, то будет назначено значение последней наведённой кнопки (lastPickedButton).
pickedEntity% = PickedEntity()
If (lastPickedButton = 0 OR button[lastPickedButton] <> pickedEntity)
If (lastPickedButton <> 0)
HideEntity spriteNumber[lastPickedButton]
lastPickedButton = 0
EndIf
For i=1 To 8
If (button[i]=pickedEntity)
lastPickedButton = i
ShowEntity spriteNumber[i]
EndIf
Next
EndIf
ЗЫ, писал в броузере, могут быть ошибки. Думаю идея ясна.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
29.03.2011, 13:57
|
#10
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Наборное устройство
Костян имел в виду использование "типа" заместо массива.
|
ДА..
|
(Offline)
|
|
29.03.2011, 14:06
|
#11
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Наборное устройство
Костян, в тупе???
|
Видимо он намекает, что он " тупе".
Костян, преждем чем отправить сообщение в тему перечитай его пару раз и возможно заметишь свои ошибки.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
29.03.2011, 22:00
|
#12
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: Наборное устройство
|
(Offline)
|
|
29.03.2011, 22:12
|
#13
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Наборное устройство
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
31.03.2011, 17:08
|
#14
|
AnyKey`щик
Регистрация: 04.12.2010
Адрес: Санкт-Петербург
Сообщений: 14
Написано 4 полезных сообщений (для 9 пользователей)
|
Ответ: Наборное устройство
Еще вопросик)) в blitz3d реально реализовать самосвечение определенных участков текстуры? пример
------------------------------------------------------
На счет кнопок... решил сделать по другому) Отказаться от проецирования цифр вместо символов. Сделать непосредственно нажатие на саму кнопку, с последующим ее свечением, как например здесь хЫ... только пока не представляю, как это сделать) нужна ваша помощь)))
Просто в ролике, что я скидывал ранее это сделано для удобства, что бы не разбираться в символах на панели, а программить свои адреса)
|
(Offline)
|
|
31.03.2011, 17:26
|
#15
|
|
Ответ: Наборное устройство
Сообщение от Keypa
Еще вопросик)) в blitz3d реально реализовать самосвечение определенных участков текстуры? пример
|
http://forum.boolean.name/showthread.php?t=14281
Сообщение от Keypa
На счет кнопок... решил сделать по другому) Отказаться от проецирования цифр вместо символов. Сделать непосредственно нажатие на саму кнопку, с последующим ее свечением, как например здесь хЫ... только пока не представляю, как это сделать) нужна ваша помощь)))
|
Нажатие кнопок можно сделать пообъектной анимацией, свечение - смена текстуры или установка соответствующего цвета, эффекта + полупрозрачный спрайт с "короной" и тоже эффект+бленд на него, выше ссылка с инфой.
|
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:56.
|