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

Alex_Noc 06.07.2008 12:57

Динамичный текст...
 
Ребята всем привет.
Вот возникла потребность в "прилинковывании" текста к анимированному обьекту.
Вобщем в течении моих проб реалитзации данной проблемы понял вот что.
Текст может двигаться - НО помоему только с помощью мыши( mousex() 2D координат.)
перемещение путем entityX(obj) не работает. опишу вкратце того как собственно должно получиться. Вобщем у меня есть динамичное меню которое при вызове выезжает из-за края экрана и реализовано с помощью анимированного билборда.
само это меню имеет 3 ползунка которыми меняем цвет обьектов. ползунки прилинкованы к билборду меню мувяться по клику и перемещению мыши. Так проблема в точ что текст который я хочу прилинковать к данному меню - должен будет показывать значения цветов R.G.B. На данный момент есть мысли черезжопного решения задачи. Это считать числовой параметр из переменной и превращать его в текст - далее читаем символы каждый в отдельности . К меню прилинковать билборды с анимированной текстурой. Ну и крутить кадры сооветственно значению (сама текстура нарисовать 0-9 картинки).
Надеюсь что есть более простой способ реализации данной задачи. Спасибо заранее ;)

ABTOMAT 06.07.2008 16:19

Ответ: Динамичный текст...
 
Если честно, я не особо понял что требуется...
Цитата:

перемещение путем entityX(obj) не работает.
вот тут ты про что?

Alex_Noc 06.07.2008 18:36

Ответ: Динамичный текст...
 
про позицию кости 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

вот то что накалякал но не пашед :( как надо потому что в другой позиции копиректиться меняю позщицию стает все черное.Памагайте плиз.
Опишите поподробнее все значения копиректа.

ABTOMAT 06.07.2008 18:45

Ответ: Динамичный текст...
 
Цитата:

text 0,entityy(bone),"когда наконец этот баг решитсо" <--- так не пашед
а так не пробовал?

Код:

CameraProject camera, EntityX(bone), EntityY(bone), EntityZ(bone)
Text ProjectedX(),ProjectedY(), "баг решилсо"


Alex_Noc 06.07.2008 18:58

Ответ: Динамичный текст...
 
так пробовал но баг не решилсо :)

FrankH 06.07.2008 19:37

Ответ: Динамичный текст...
 
Честно признаюсь, тоже не "вьехал" в суть проблемы, сначала не работает ЕнтитиХ, потом оказывается что используются кости.. Зачем же кости, если все и без них можно сделать, и будет все работать.
Если нужно вывести текст в 3д, то можно использовать и прокрутку текстуры(как автор сказал), или проще но тормознее выводить текст в текстуру и при изменении бегунков перепечатывать его.

Alex_Noc 06.07.2008 19:52

Ответ: Динамичный текст...
 
так что тут непонятного :
Есть анимированое меню - это меню изменения цветов выделенного обьекта.
можно канешно тупо в уголке где то "вне" меню написать значения RGB и не париться.
Но мне нужно чтобы это значение было "вместе" с меню. Что бы эти значения выезжали вместе с менюшкой и имели как бы фиксированную постоянную позицию в области этой менюшки , а т.е чтобы скраю от каждой шкалы было значение текуших цветов.
и если я закрываю меню (а оно тоже анимированное) то текст заезжал бы также как и меню (но не меняя позиции ВНУТРИ меню)
т.е был "как бы"прилинкован к этому меню. прикрепи к сфере кубик и мувь сферу - увидишь что кубик будет двигаться не меняя позицию - вот так же мне нужно но с текстом. Надеюсь доходчиво :)

FrankH 06.07.2008 20:22

Ответ: Динамичный текст...
 
Если припаррентить к меню не выходит, то подсказать что-либо без примера не могу.
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)

Alex_Noc 06.07.2008 20:40

Ответ: Динамичный текст...
 
мда .. этот пост видел и это Макса ответ(MOKA) но описано не понятно координата х в которую копируешь????? не понимаю

FrankH 06.07.2008 21:19

Ответ: Динамичный текст...
 
Причем тут Мока? Это перевод.
х и у в который копируешь, это координаты, с которых рисуется картинка вправо и вниз, то есть если ты будешь копировать в 0,0 то копируемый участок(т.е. твои цифры) нарисуются в самой левой и верхней части, если же 100,100 то цифры отрисуются(допустим копируешь в буффер экрана) отступив слева 100 и сверху 100 пикселов.

Belamore 06.07.2008 21:22

Ответ: Динамичный текст...
 
Код:

CameraProject camera, EntityX(bone,1), EntityY(bone,1), EntityZ(bone,1)
Text ProjectedX(),ProjectedY(), "баг решилсо"

Может, так?

Alex_Noc 07.07.2008 00:54

Ответ: Динамичный текст...
 
нет так тоде некатит

moka 07.07.2008 17:05

Ответ: Динамичный текст...
 
Создай текстуру, затем в неё рисуй текст, а биллбоард с этой текстурой привяжи к кости. Или вообще его изначально создай в моделе, а при загрузки найди и ему текстуру натяни.

Alex_Noc 07.07.2008 21:33

Ответ: Динамичный текст...
 
Вложений: 1
Угу - так и пытаюсь но никто так и не разьяснил правильно - как работает копирект.
Вот нарисовал тут чтоб мне понятнее было. Исправь как будет если как на картинке. Тогда я смогу понять а то уже избился весь - неполучаетсья какие токо значения не ставил

FrankH 07.07.2008 23:15

Ответ: Динамичный текст...
 
Цитата:

Сообщение от Alex_Noc (Сообщение 81873)
Вот нарисовал тут чтоб мне понятнее было.

:-D
получится то же что и в первом варианте(как я уже написал) текстура ляжет вверхний левый угол, потому что это точка отсчета для всех текстур в блитце, потому 0.0 это левый верх.

Alex_Noc 07.07.2008 23:26

Ответ: Динамичный текст...
 
Блин все всем спасибо :) но все же проблему опишу :) - вобщем "билборды" не развернуты просто были :) я их планаром в максе заанврапил и все :)
Сори канешно :) развел тут :) дебаты :) про точку 0 :). Да кстати если вдруг у кого то потом возникнут вопросы по такому же поводу то точка начала копировния (в моем случае 0,0) и будет являться как бы центром "скопированной" области и по ней же потом выравниваем 3ю пару координат

Alex_Noc 08.07.2008 12:20

Ответ: Динамичный текст...
 
Сори вынужден еще раз отчитаться :) так как решил проблему неким другим способом и сразу с альфаканалом :) Вобщем выкину функцию :
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

Alex_Noc 08.07.2008 22:25

Ответ: Динамичный текст...
 
Блин я чето совсем не пойму :) вобщем когда коменчу строку
DrawImageRect Img_R,0,0,0,0,30,30 ; снимаем картинку нужного размера
по идее не должно ниче рисоваться - картинка то как создасться ?
А она работает у меня :) - сие чудо наблюдаю второй день :)
Мож кто прояснит ситуэйшн ;)

Alex_Noc 16.07.2008 01:16

Ответ: Динамичный текст...
 
Сори вынужден запостить опять потому как :) все мои движения оказались лишними :) - текст перемешаеться путем простого позиционирования :
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