![](images/chestnut/misc/left.gif) |
Xors3D Графический движок с поддержкой DirectX9 |
13.01.2015, 00:42
|
#1
|
Нуждающийся
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
|
Выбор чайлдов
Есть функция, выбирает чайлд и окрашивает его в синий(180), если не выбран, то белый(255).
Вопрос в том как сделать, Что когда выбираешь чайлд на левую кнопку мыши, то рисовалось DrawImage(handle,x,y) и оставалось нарисованым до тех пор пока что мы не захотим его закрыть?!
Function xUpdateChild() pick = xCameraPick(cam,xMouseX(),xMouseY()) If xMouseHit(1)=1 For i = 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
|
(Offline)
|
|
13.01.2015, 01:50
|
#2
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,021
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Выбор чайлдов
xGetChild, DrawImage(handle,x,y)?
Ты хочешь рисовать на текстуре выбранного объекта?
Берёшь текстуру с чайлда, открываешь в xTextureBuffer()...
Даже писать ничего не надо, стандартный пример из блица:
![](images/chestnut/misc/code_html.gif)
; Пример 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. Я понял что совсем не понял тебя.
|
(Offline)
|
|
13.01.2015, 02:10
|
#3
|
Нуждающийся
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
|
Ответ: Выбор чайлдов
не, реализация типо GUI....кликаем на бокс, он подсвечивается и вылазиет окошко(картинка, менюшка) на экран......потом допустим крестик нажимаем и окно закрывается.
P.S. xGetChild(board,i) ----- board=xLoadAnimMesh("blabla.3ds")
|
(Offline)
|
|
13.01.2015, 19:57
|
#4
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Ответ: Выбор чайлдов
Делал как то 3D меню, найду исходник выложу если надо ![:)](images/smilies/smile.gif)
__________________
|
(Offline)
|
|
13.01.2015, 20:20
|
#5
|
Нуждающийся
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
|
Ответ: Выбор чайлдов
Сообщение от L-ee-X
Делал как то 3D меню, найду исходник выложу если надо ![:)](images/smilies/smile.gif)
|
Спасибо, да я уже сам нашел решение)
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:41.
|