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

Keypa 28.03.2011 21:26

Наборное устройство
 
Всем привет! Нужна помощь в реализации набора адреса, как в этом ролике))) help! Как это вообще можно сделать?

moka 28.03.2011 21:33

Ответ: Наборное устройство
 
Делаешь модель, делаешь имена каждой кнопочке, затем именуешь их соответственно, затем в блице, грузишь модель с чайлдами, и делаешь CameraPick прицелу. При этом пикай постоянно, чтобы определить куда целится камера, чтобы отрисовывать спрайты кнопок если ты хочешь как в ролике.
При пике, определяешь какой объект, имя энтити должно нести нужную тебе инфу.
Собственно зная на какой объект целишься, по клику - будет нажатие определённой кнопки.

Лучше конкретнее изложи, что не получается, или где не хватает знаний, вырази словами рассуждения по реализации подобного, будет проще помочь.

Keypa 29.03.2011 07:40

Ответ: Наборное устройство
 
Вложений: 1
Дело в том, что я совсем недавно начал осваивать blitz)
Цитата:

грузишь модель с чайлдами
Я так понимаю речь идет о команде "FindChild"
Я сделал тестовую модель, экспортировал в X формат, но blitz что-то не хочет искать дочерние объекты)) Или я что-то неправильно делаю? :4to: хм)) А формате 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")
Такс... сделал так, что бы появлялась картинка по наведению на кнопку, но вот только понятия не имею, как сделать так, что бы при наведении на другую кнопку появлялась другая картинка(((

RegIon 29.03.2011 12:01

Ответ: Наборное устройство
 
Цитата:

Такс... сделал так, что бы появлялась картинка по наведению на кнопку, но вот только понятия не имею, как сделать так, что бы при наведении на другую кнопку появлялась другая картинка(((
Вешаешь на каждый КАРТИН тригер,,если он равен 1,то отображаем её,если =0 то нет,(лучше ето тупаком делать)

impersonalis 29.03.2011 12:02

Ответ: Наборное устройство
 
Цитата:

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


RegIon 29.03.2011 12:08

Ответ: Наборное устройство
 
Цитата:


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


яб в тупе загнал..

Keypa 29.03.2011 13:16

Ответ: Наборное устройство
 
Цитата:

local b%[8]
for i=2 to 8
b[i]=FindChild(dhd,"b0"+str(i))
next
impersonalis, а можно по подробнее?))) Почему именно так... :rolleyes: точнее, какая разница? Объясните если не сложно) То что этот код выполняет я понял)) :-)

Цитата:

яб в тупе загнал..
Костян, в тупе??? :SOS:

Randomize 29.03.2011 13:37

Ответ: Наборное устройство
 
Цитата:

Сообщение от Keypa (Сообщение 184121)
impersonalis, а можно по подробнее?))) Почему именно так... :rolleyes: точнее, какая разница? Объясните если не сложно) То что этот код выполняет я понял)) :-)

Лучше один массив чем много переменных.
Можно заполнить/считать его циклом.
Да и наглядние это.

Цитата:

Сообщение от Keypa (Сообщение 184121)
Костян, в тупе??? :SOS:

Он почти всегда непонятно пишет. А имел в виду он скорее всего Type - Типы. Костян имел в виду использование "типа" заместо массива.

moka 29.03.2011 13:49

Ответ: Наборное устройство
 
Кеура, в твоём участке кода, где ты находишь дочерние объекты, 8 строк, и есть закономерность. Если ты захочешь их всех по очереди перебрать, это будет не так и просто.
А с массивом намного проще. Смотри, доступ к переменной теперь будет посредством индекса, например если тебе нужно проверить если объект который нажали, будет цикл:

Глобальная переменная, хранит индекс кнопки, которая была наведёна, чтобы при отведении, скрыть её спрайт.
Код:

lastPickedButton%
Далее в цикле мы присваиваем временную переменную (я обычно присваивал, а не ссылался к функциям, как-то внушает больше доверия.
Затем проверяем, если объект на который навели уже не тот что в прошлый раз, тогда скрываем тот что был, и идём дальше. Либо если вообще нету наведённого (равен нулю), тогда пропускаем скрытие. Далее перелистываем массив объектов (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

ЗЫ, писал в броузере, могут быть ошибки. Думаю идея ясна.

RegIon 29.03.2011 13:57

Ответ: Наборное устройство
 
Цитата:

Костян имел в виду использование "типа" заместо массива.
ДА..

Nex 29.03.2011 14:06

Ответ: Наборное устройство
 
Цитата:

Костян, в тупе??? :SOS:
Видимо он намекает, что он "тупе".

Костян, преждем чем отправить сообщение в тему перечитай его пару раз и возможно заметишь свои ошибки.

LLI.T.A.L.K.E.R. 29.03.2011 22:00

Ответ: Наборное устройство
 
Не тупе, а турэ
Type

moka 29.03.2011 22:12

Ответ: Наборное устройство
 
Если произносить, то как "тайп", при этом "й" будет между "й" и "и", но коротко и без акцента. Похоже на быстрое отнекивание "ай".
Вот ссылка на mp3: http://www.gstatic.com/dictionary/st.../de/0/type.mp3

Keypa 31.03.2011 17:08

Ответ: Наборное устройство
 
Еще вопросик)) в blitz3d реально реализовать самосвечение определенных участков текстуры? пример
------------------------------------------------------
На счет кнопок... решил сделать по другому) Отказаться от проецирования цифр вместо символов. Сделать непосредственно нажатие на саму кнопку, с последующим ее свечением, как например здесь хЫ... только пока не представляю, как это сделать) нужна ваша помощь)))

Просто в ролике, что я скидывал ранее это сделано для удобства, что бы не разбираться в символах на панели, а программить свои адреса) :crazy:

Venom2 31.03.2011 17:26

Ответ: Наборное устройство
 
Цитата:

Сообщение от Keypa (Сообщение 184379)
Еще вопросик)) в blitz3d реально реализовать самосвечение определенных участков текстуры? пример

http://forum.boolean.name/showthread.php?t=14281
Цитата:

Сообщение от Keypa (Сообщение 184379)
На счет кнопок... решил сделать по другому) Отказаться от проецирования цифр вместо символов. Сделать непосредственно нажатие на саму кнопку, с последующим ее свечением, как например здесь хЫ... только пока не представляю, как это сделать) нужна ваша помощь)))

Нажатие кнопок можно сделать пообъектной анимацией, свечение - смена текстуры или установка соответствующего цвета, эффекта + полупрозрачный спрайт с "короной" и тоже эффект+бленд на него, выше ссылка с инфой.


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

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