![]() |
Динамичный текст...
Ребята всем привет.
Вот возникла потребность в "прилинковывании" текста к анимированному обьекту. Вобщем в течении моих проб реалитзации данной проблемы понял вот что. Текст может двигаться - НО помоему только с помощью мыши( mousex() 2D координат.) перемещение путем entityX(obj) не работает. опишу вкратце того как собственно должно получиться. Вобщем у меня есть динамичное меню которое при вызове выезжает из-за края экрана и реализовано с помощью анимированного билборда. само это меню имеет 3 ползунка которыми меняем цвет обьектов. ползунки прилинкованы к билборду меню мувяться по клику и перемещению мыши. Так проблема в точ что текст который я хочу прилинковать к данному меню - должен будет показывать значения цветов R.G.B. На данный момент есть мысли черезжопного решения задачи. Это считать числовой параметр из переменной и превращать его в текст - далее читаем символы каждый в отдельности . К меню прилинковать билборды с анимированной текстурой. Ну и крутить кадры сооветственно значению (сама текстура нарисовать 0-9 картинки). Надеюсь что есть более простой способ реализации данной задачи. Спасибо заранее ;) |
Ответ: Динамичный текст...
Если честно, я не особо понял что требуется...
Цитата:
|
Ответ: Динамичный текст...
про позицию кости bone=findchild (anim_model,"bone_menu")
text 0,entityy(bone),"когда наконец этот баг решитсо" <--- так не пашед еще тут вот вопросец назрел - просьба знающих людей обьясните пожалуйста все значения функции Copyrect , и буфера с которыми нужно работать А то весь день уже страдаю и ниче путного . Вобющем решил получить текстуру но чтобы была альфа решил сначала сделать имагу с черным фоном Drawimagerect а потом ее в текстуру записать. Но проблема в том что не понимаю всех значений Copyrect уже все перепробовал какие токо цифры там не писал - вобщем текстуру создал 100 на 100 имагу создал 30 на 30 Function DrawTextToTexture (entity,tex) SetBuffer ImageBuffer (img_r) Cls Color 255,0,0 Text 0,0,Colors(count_color,0) Color 0,255,0 Text 15,0,Colors(count_color,1) Color 0,0,255 Text 0,10,Colors(count_color,2) Color 250,250,250 SetBuffer FrontBuffer() DrawImageRect Img_R,0,0,0,0,30,30 CopyRect(0,0,100,100,30,30,FrontBuffer(),TextureBu ffer(tex)) EntityTexture entity,tex SetBuffer BackBuffer() End Function вот то что накалякал но не пашед :( как надо потому что в другой позиции копиректиться меняю позщицию стает все черное.Памагайте плиз. Опишите поподробнее все значения копиректа. |
Ответ: Динамичный текст...
Цитата:
Код:
CameraProject camera, EntityX(bone), EntityY(bone), EntityZ(bone) |
Ответ: Динамичный текст...
так пробовал но баг не решилсо :)
|
Ответ: Динамичный текст...
Честно признаюсь, тоже не "вьехал" в суть проблемы, сначала не работает ЕнтитиХ, потом оказывается что используются кости.. Зачем же кости, если все и без них можно сделать, и будет все работать.
Если нужно вывести текст в 3д, то можно использовать и прокрутку текстуры(как автор сказал), или проще но тормознее выводить текст в текстуру и при изменении бегунков перепечатывать его. |
Ответ: Динамичный текст...
так что тут непонятного :
Есть анимированое меню - это меню изменения цветов выделенного обьекта. можно канешно тупо в уголке где то "вне" меню написать значения RGB и не париться. Но мне нужно чтобы это значение было "вместе" с меню. Что бы эти значения выезжали вместе с менюшкой и имели как бы фиксированную постоянную позицию в области этой менюшки , а т.е чтобы скраю от каждой шкалы было значение текуших цветов. и если я закрываю меню (а оно тоже анимированное) то текст заезжал бы также как и меню (но не меняя позиции ВНУТРИ меню) т.е был "как бы"прилинкован к этому меню. прикрепи к сфере кубик и мувь сферу - увидишь что кубик будет двигаться не меняя позицию - вот так же мне нужно но с текстом. Надеюсь доходчиво :) |
Ответ: Динамичный текст...
Если припаррентить к меню не выходит, то подсказать что-либо без примера не могу.
CopyRect src_x,src_y,src_width,src_height,dest_x,dest_y,[src_buffer],[dest_buffer] Parameters src_x = х координата с которой начинать копировать src_y = у координата с которой начинать копировать src_width = ширина копируемого участка src_height = высота копируемого участка dest_x = координата х в которую копируешь dest_y = координата у в которую копируешь src_buffer = буффер-источник (optional) dest_buffer = буффер-цель (optional) |
Ответ: Динамичный текст...
мда .. этот пост видел и это Макса ответ(MOKA) но описано не понятно координата х в которую копируешь????? не понимаю
|
Ответ: Динамичный текст...
Причем тут Мока? Это перевод.
х и у в который копируешь, это координаты, с которых рисуется картинка вправо и вниз, то есть если ты будешь копировать в 0,0 то копируемый участок(т.е. твои цифры) нарисуются в самой левой и верхней части, если же 100,100 то цифры отрисуются(допустим копируешь в буффер экрана) отступив слева 100 и сверху 100 пикселов. |
Ответ: Динамичный текст...
Код:
CameraProject camera, EntityX(bone,1), EntityY(bone,1), EntityZ(bone,1) |
Ответ: Динамичный текст...
нет так тоде некатит
|
Ответ: Динамичный текст...
Создай текстуру, затем в неё рисуй текст, а биллбоард с этой текстурой привяжи к кости. Или вообще его изначально создай в моделе, а при загрузки найди и ему текстуру натяни.
|
Ответ: Динамичный текст...
Вложений: 1
Угу - так и пытаюсь но никто так и не разьяснил правильно - как работает копирект.
Вот нарисовал тут чтоб мне понятнее было. Исправь как будет если как на картинке. Тогда я смогу понять а то уже избился весь - неполучаетсья какие токо значения не ставил |
Ответ: Динамичный текст...
Цитата:
получится то же что и в первом варианте(как я уже написал) текстура ляжет вверхний левый угол, потому что это точка отсчета для всех текстур в блитце, потому 0.0 это левый верх. |
Ответ: Динамичный текст...
Блин все всем спасибо :) но все же проблему опишу :) - вобщем "билборды" не развернуты просто были :) я их планаром в максе заанврапил и все :)
Сори канешно :) развел тут :) дебаты :) про точку 0 :). Да кстати если вдруг у кого то потом возникнут вопросы по такому же поводу то точка начала копировния (в моем случае 0,0) и будет являться как бы центром "скопированной" области и по ней же потом выравниваем 3ю пару координат |
Ответ: Динамичный текст...
Сори вынужден еще раз отчитаться :) так как решил проблему неким другим способом и сразу с альфаканалом :) Вобщем выкину функцию :
Function DrawTextToImage () SetBuffer ImageBuffer (img_r) ;устанавливаем буфер картинок Cls ;очищаем экран Color 255,0,0 ;чтобы текст был цветным раскрашиваем строки в нужный нам цвет Text 0,0,Colors(count_color,0) Color 0,255,0 ;пишем текст Text 0,40,Colors(count_color,1) Color 0,0,255 Text 0,80,Colors(count_color,2) Color 250,250,250 DrawImageRect Img_R,0,0,0,0,30,30 ; снимаем картинку нужного размера SetBuffer BackBuffer() ;переворачиваем буфер End Function ;------------- DRAW MOUSE ------------------------------- Function Draw_Mouse () If show_mouse=1 Then DrawImage Cursor,MX#,MY# Text 0,50,"show_mouse" y_img=EntityY(bone_color_menu) DrawImage Img_R,170,512 -y_img*10000 ; отрисовываем картинку по нужным нам координатам (у меня умножение на 10000 потому что перевожу из своих единиц в 2d координаты экрана) вот таким образом у меня получился динач\мический текст выезжающий вместе с менюшкой и меняющий значение при таскании ползунка. Надеюсь кому то это будект полезно :) End Function |
Ответ: Динамичный текст...
Блин я чето совсем не пойму :) вобщем когда коменчу строку
DrawImageRect Img_R,0,0,0,0,30,30 ; снимаем картинку нужного размера по идее не должно ниче рисоваться - картинка то как создасться ? А она работает у меня :) - сие чудо наблюдаю второй день :) Мож кто прояснит ситуэйшн ;) |
Ответ: Динамичный текст...
Сори вынужден запостить опять потому как :) все мои движения оказались лишними :) - текст перемешаеться путем простого позиционирования :
Text 175,589 -EntityY(bone_color_menu)*10000,Colors(count_color, 2) |
Часовой пояс GMT +4, время: 05:45. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot