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)
На счет кнопок... решил сделать по другому) Отказаться от проецирования цифр вместо символов. Сделать непосредственно нажатие на саму кнопку, с последующим ее свечением, как например здесь хЫ... только пока не представляю, как это сделать) нужна ваша помощь)))

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

moka 31.03.2011 17:32

Ответ: Наборное устройство
 
Можно просто заменой текстуры для кнопки - так видимо сделано по второй ссылке что ты дал на картинку с кнопками.
А про свечение. Там свечение идёт на всю картинку, и засвечивает лишь яркие участки, по сути если ты будешь использовать эффект Bloom то он подойдёт, нужно будет просто менять текстуру с ярким цветом поверх.
Либо можно сделать как: Есть кнопка, на ней текстура самой кнопки. А вторым слоём ставится текстура с блендом что осветляет, текстура со свечением. Таким образом при нажатии, накладываешь эту самую текстуру, и потом убираешь.

Keypa 01.04.2011 21:49

Ответ: Наборное устройство
 
Всем большое спасибо за помощь!))) Более менее начал разбираться :-)

moka 01.04.2011 21:50

Ответ: Наборное устройство
 
Будут результаты, пости скрины или может даже видео, будет очень интересно!

Keypa 04.04.2011 01:30

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

Сообщение от MoKa (Сообщение 184510)
Будут результаты, пости скрины или может даже видео, будет очень интересно!

Само собой))) Правда сейчас надо определится с дизайном устройства)) <O>
Набросал вариантик устройства))

RegIon 05.04.2011 13:06

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

Сообщение от Keypa (Сообщение 184722)
Само собой))) Правда сейчас надо определится с дизайном устройства)) <O>
Набросал вариантик устройства))

Я так заметил,тут наверно полигонов многовато..

Keypa 05.04.2011 13:52

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

Сообщение от Костян (Сообщение 184931)
Я так заметил,тут наверно полигонов многовато..

эммм))) 652 полигона :)
Для ключевой модели это очень даже мало... вообще, думаю увеличить сеточку)))

Keypa 05.04.2011 23:53

Ответ: Наборное устройство
 
Вроде как разобрался с набором)))
сделал небольшое видео по теме... :crazy:
Вместо символов пока цифры, но это только пока)) Моделька пока без текстур... все будя чуть позже :ok:

LLI.T.A.L.K.E.R. 06.04.2011 00:05

Ответ: Наборное устройство
 
Сделай видео-ответ тому GarryMod видео ;)

moka 06.04.2011 03:58

Ответ: Наборное устройство
 
Движение мышки рывками, видно делишь целое число где-то а не используешь float'ы.

Нажатия прикольные. Можно сделать как, при нажатии кнопка загорается (не резко но быстро), и потом тушиться с фейдом в например 2 секунды.
Это добавит интересную задачи думаю для тебя :)

RegIon 06.04.2011 13:59

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

Движение мышки рывками, видно делишь целое число где-то а не используешь float'ы.
Не видно,а делит..где-то в камере..

Keypa 07.04.2011 04:09

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

Движение мышки рывками, видно делишь целое число где-то а не используешь float'ы.
Поправил) Это пока не так важно)))

Цитата:

Можно сделать как, при нажатии кнопка загорается (не резко но быстро), и потом тушиться с фейдом в например 2 секунды.
Такая задумка была)) Просто пока еще не знаю как реализовать)
Кстати, сделал автоматическое отключение кнопок.
Небольшое видео по теме
Если игрок бездействует больше трех секунд (потом будет побольше), то набранные кнопки гаснут, также кнопки будут отключаться если не нажата главная кнопка набора (которая находится по центру) или если адрес введен неправильно))

А на счет фэйда пока не знаю... буду думать))) :crazy:


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

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