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

Delta_Q 05.10.2007 00:41

Меню на кубе?
 
Идея такая...
Есть куб у куба 6 сторон надо сделать так чтобы на каждой стороне куба было свое изображение. И если я пикаю по кокойто стороне чтобы вызывалось тока то меню по чьей стороне я пикнул.
Такеж на одной из сторон чтобы можно было вводить текст.
Т.е. напрмиер на одной из сторон возникал запрос например назовите сохраняемый файл. и там с клавиатуры вводиш имя.

-=SCiP=- 05.10.2007 01:30

Re: Меню на кубе?
 
Это тебе сначало нуна создать текстуру потом менушку (чтоб это было в текстуре)! И по вертексам натенуть на разные стороны куба текстуры!

tex=createTexture(256,256)
setBufer TextureBufer(tex)

;======Сдесь менюха

SetBufer BackBufer()

Вроде я так раньше делал!
Посматри в справку!
Если ты хотиш какбы , при выборе куб крутился и там были пораметры на разных сторонах куба? создай куб и разбей его не плоскостя! EntityPickMode CameraPick
И при наведение мышки выполнять определыные функции!
Для ввода текста есть GetKey
Тоже насчет этого смотри справку!
Это довольно долговато этовсе писать!(Алгоритм)
А чем обычная графическая менюха тебя не устраевает?

Delta_Q 05.10.2007 01:37

Re: Меню на кубе?
 
Просто хотел узнать наскоко это реализуемо...
А грфическую менюху где можно посмотреть?
А как сделать чтобы выводить текст не просто на экран а на текстуру куба?

-=SCiP=- 05.10.2007 02:17

Re: Меню на кубе?
 
Вложений: 2
Вот мая менюшка полностью графическая и полностью до пикселя сделана только мной!
Но увы она еще недоделана!... Недоделана меню настроек там пару кнопок!
А все остальное пашет и есть диологовые окна! Естественно графические!
Красиво и легко!

H@NON 05.10.2007 11:43

Re: Меню на кубе?
 
Цитата:

А как сделать чтобы выводить текст не просто на экран а на текстуру куба?
Сначало пишешь текст, который должен быть на текстуре, потом все это дело записываешь в текстурный буффер и уж оттуда у тебя выходит готовая текстура, которую остается наклеить на кубик.

Код:

Graphics3D 640, 480, 0, 2
SetBuffer BackBuffer()


font=LoadFont("Arial cyr",30)
SetFont font

lit = CreateLight()
RotateEntity lit, 45, 45, 0
PositionEntity lit, 10, 30, 0

tex=CreateTexture(120,120)

SetBuffer TextureBuffer(tex) 
Color 255,255,0
Text 60,40,"Menu № 1",1,1
Text 60,80,"#1",1,1
Color 10,200,10
SetBuffer BackBuffer()

cubewall = CreateCube()
ScaleEntity cubewall, 10, 10, 1
PositionEntity cubewall, 0, 0, 5

cube=CreateCube() 
ScaleEntity cube,2,2,2
EntityTexture cube,tex

cam = CreateCamera()
PositionEntity cam, 0, 0, -15

While Not KeyHit(1)

TurnEntity cube, (KeyDown(200)-KeyDown(208))*0.5, (KeyDown(203) - KeyDown(205))*0.5, 0

RenderWorld()
Flip 1
Wend
End


H@NON 05.10.2007 11:55

Re: Меню на кубе?
 
Да, и зачем именно сразу куб брать? можно взять четыре параллепипеда сложить из них "кубовое" меню. И проблем с пиками не будет, да и текстура на каждый параллепипед индивидуальная.

IGR 05.10.2007 12:17

Re: Меню на кубе?
 
Цитата:

Да, и зачем именно сразу куб брать? можно взять четыре параллепипеда сложить из них "кубовое" меню. И проблем с пиками не будет, да и текстура на каждый параллепипед индивидуальная.
или вообще квады взять !!
так будет лутшее !! :)

H@NON 05.10.2007 13:20

Re: Меню на кубе?
 
Цитата:

Сообщение от IGR
или вообще квады взять !!
так будет лутшее !! :)

Да можно просто все в одной модели держать, просто стороны это разные сурфейсы. Так даже практичнее будет

Horror 05.10.2007 14:36

Re: Меню на кубе?
 
А еще легче создать куб в 3д максе от от детачичь все стороны!

H@NON 05.10.2007 14:50

Re: Меню на кубе?
 
Цитата:

Да можно просто все в одной модели держать, просто стороны это разные сурфейсы. Так даже практичнее будет
Цитата:

Сообщение от Horror
А еще легче создать куб в 3д максе от от детачичь все стороны!

Так я про это и говорил.

Delta_Q 05.10.2007 15:08

Re: Меню на кубе?
 
По моделям пикать нельзя

H@NON 05.10.2007 15:14

Re: Меню на кубе?
 
Нельзя, значит невозможно? или нельзя - значит ненужно?
если первое, то ты ошибаешся, еще как можно( только по ним и пикают:))

Delta_Q 05.10.2007 15:35

Re: Меню на кубе?
 
Вот ты делаеш SetBuffer TextureBuffer(tex) а как потом очистить эту облость памяти? ну чтото типа FreeEntity...

H@NON 05.10.2007 16:03

Re: Меню на кубе?
 
тебе нужно очистить буффер или саму текстуру? Если буффер, то делай так:
setbuffer texturebuffer()
cls
setbuffer backbuffer()

Delta_Q 05.10.2007 16:16

Re: Меню на кубе?
 
Ну я всмысле что если я сделаю меню... потом после того как надо будет это меню выгрузить и загрузить какуюто сцену все за собой подчистоить.

З.Ы.
Получаеться команда setbuffer backbuffer() чистит буфер?
А то что наложилось на объект ввиде текстуры удалитсья с самим объектом?

H@NON 05.10.2007 16:21

Re: Меню на кубе?
 
Так находи все что у тебя в меню используется, и удаляй. Напиши специальную функцию, хотя если кроме меню ничего не будет, то можно и использовать Clearworld().А потом уже грузить игру. Если тебе нужна функция очистки именно меню, то пиши на подобие такого:
function clearmenu()
freeentity cube
freeentity buttons
freetexture fon
freeimage fon
end function

Как то так

Delta_Q 05.10.2007 17:16

Re: Меню на кубе?
 
Я делаю так что присваиваю всем объектам один пивот и потом делаю очищение по пивоту.
Или ентити создоваемых объектов тоже чистить надо?


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

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