forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Выбор чайлдов (http://forum.boolean.name/showthread.php?t=19633)

MOrtAl44444 13.01.2015 00:42

Выбор чайлдов
 
Есть функция, выбирает чайлд и окрашивает его в синий(180), если не выбран, то белый(255).
Вопрос в том как сделать, Что когда выбираешь чайлд на левую кнопку мыши, то рисовалось DrawImage(handle,x,y) и оставалось нарисованым до тех пор пока что мы не захотим его закрыть?!:rolleyes:

PHP код:

Function xUpdateChild()
  
pick xCameraPick(cam,xMouseX(),xMouseY())
If 
xMouseHit(1)=1
   
For 0 To 85
     
If pick=xGetChild(board,i)
       
xEntityColor(xGetChild(board,i),0,0,180)       
      Else
       
xEntityColor(xGetChild(board,i),255,255,255)    
     EndIf
   
Next
EndIf
  
DebugLog Flag_pick
End 
Function 


Arton 13.01.2015 01:50

Ответ: Выбор чайлдов
 
xGetChild, DrawImage(handle,x,y)?

Ты хочешь рисовать на текстуре выбранного объекта?

Берёшь текстуру с чайлда, открываешь в xTextureBuffer()...

Даже писать ничего не надо, стандартный пример из блица:

Код:

; Пример TextureBuffer

; ---------------------

Graphics3D 640,480
SetBuffer BackBuffer()

camera=CreateCamera()

light=CreateLight()
RotateEntity light,90,0,0

cube=CreateCube()
PositionEntity cube,0,0,5

; Создаем текстуру размером 256x256
tex=CreateTexture(256,256)

; Устанавливаем текущий буфер для работы - TextureBuffer
SetBuffer TextureBuffer(tex)

; Очищаем буфер с белым цветом
ClsColor 255,255,255
Cls

; Пишем текст на текстуре
font=LoadFont("arial",24)
SetFont font
Color 0,0,0
Text 0,0,"This texture"
Text 0,40,"was created using" : Color 0,0,255
Text 0,80,"CreateTexture()" : Color 0,0,0
Text 0,120,"and drawn to using" : Color 0,0,255
Text 0,160,"SetBuffer TextureBuffer()"

; Текстурируем куб
EntityTexture cube,tex

; Теперь текущий буфер - BackBuffer
SetBuffer BackBuffer()

While Not KeyDown( 1 )

pitch#=0
yaw#=0
roll#=0

If KeyDown( 208 )=True Then pitch#=-1
If KeyDown( 200 )=True Then pitch#=1
If KeyDown( 203 )=True Then yaw#=-1
If KeyDown( 205 )=True Then yaw#=1
If KeyDown( 45 )=True Then roll#=-1
If KeyDown( 44 )=True Then roll#=1

TurnEntity cube,pitch#,yaw#,roll#

RenderWorld
Flip

Wend

End



Или речь идёт о клике на дочерний объект с последующем рисованием 2D картинки? Не понял про закрытие, удаляешь по нужному тебе событию.
Поройся по примерам из хелпа блица, они для хорса будут аналогичными.

P. S. Я понял что совсем не понял тебя.

MOrtAl44444 13.01.2015 02:10

Ответ: Выбор чайлдов
 
не, реализация типо GUI....кликаем на бокс, он подсвечивается и вылазиет окошко(картинка, менюшка) на экран......потом допустим крестик нажимаем и окно закрывается.
P.S. xGetChild(board,i) ----- board=xLoadAnimMesh("blabla.3ds")

L-ee-X 13.01.2015 19:57

Ответ: Выбор чайлдов
 
Делал как то 3D меню, найду исходник выложу если надо :)

MOrtAl44444 13.01.2015 20:20

Ответ: Выбор чайлдов
 
Цитата:

Сообщение от L-ee-X (Сообщение 291726)
Делал как то 3D меню, найду исходник выложу если надо :)

Спасибо, да я уже сам нашел решение)


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

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