sure mate, here is a sample, not only that they can behave as 3d buttons. the functions within this example show how it can be done.
asking for code when you havent made an attempt however might stump your learning, however heres a sample.
sync rate 60 : sync on
set display mode 1024,768,16
randomize timer()
color backdrop rgb(0,0,0)
set ambient light 95
`set text opaque
set text font "arial"
set text to bold
fontsize = 32
set text size fontsize
dim debug_output$(1)
debug_output$(1)=""
dim btn_x(3)
dim btn_y(3)
btn_x(1) = 512
btn_y(1) = 300
btn_x(2) = 512
btn_y(2) = 350
btn_x(3) = 512
btn_y(3) = 400
dim btn_siz_x(3)
dim btn_siz_y(3)
for i = 1 to 3
btn_siz_x(i) = 256
btn_siz_y(i) = 32
next i
Makebtn3D(1)
Makebtn3D(2)
Makebtn3D(3)
Texture_3D_btn(1,"new character",1)
Texture_3D_btn(2,"save game",2)
Texture_3D_btn(3,"exit game",3)
position camera 0,0,-1
point camera 0,0,0
position light 0,0,5,-5
point light 0,0,0,0
do
Checkbtn3D(1)
Checkbtn3D(2)
Checkbtn3D(3)
rem safe exit
if inkey$()="q"
undim debug_output$(1)
Deletebtn3D(btn_num)
end
endif
fastsync
loop
rem ------------------------------------------------------
rem Makebtn3D(btn3D_siz,btn3D_x,btn3D_y) Function By David Smith
rem ------------------------------------------------------
function Makebtn3D(objnum)
make object plain objnum,btn_siz_x(objnum),btn_siz_y(objnum)
position object objnum,0.0,0.0,0.0
`yrotate object objnum,180
`fix object pivot objnum
lock object on objnum
ghost object on objnum
`disable object zdepth 1
Placebtn3D(objnum)
endfunction
rem ------------------------------------------------------
rem texture_3D_btn(objnum,btn_num_text$,txnum) by david smith
rem ------------------------------------------------------
function Texture_3D_btn(objnum,btn_num_text$,txnum)
ink rgb(0,0,155),1
box 0,0,256,32
ink rgb(255,255,255),1
text 8,2,btn_num_text$
get image txnum,0,0,256,32,1
texture object objnum,txnum
endfunction
rem ------------------------------------------------------
rem Placebtntn(Object,X,Y) Function by Thomas Christ
rem ------------------------------------------------------
Function Placebtn3D(objnum)
Width = Screen Width()/2
Height = Screen Height()/2
Z# = Screen Height()*0.83
Position Object objnum,(btn_x(objnum) - Width),(Height - btn_y(objnum)),Z#
EndFunction
rem ------------------------------------------------------
rem Checkbtn3D(x1,x2,y1,y2,ms) Function by David Smith
rem ------------------------------------------------------
Function Checkbtn3D(objnum)
btnxA = btn_x(objnum) - (btn_siz_x(objnum) / 2)
btnyA = btn_y(objnum) - (btn_siz_y(objnum) / 2)
btnxB = btn_x(objnum) + (btn_siz_x(objnum) / 2)
btnyB = btn_y(objnum) + (btn_siz_y(objnum) / 2)
If mousex()>btnxA and mousex()<btnxB and mousey()>btnyA and mousey()<btnyB and mouseclick()=0
debug_output$(1)="mouse over"
scale object objnum,120,120,120
ghost object off objnum
else
ghost object on objnum
scale object objnum,100,100,100
endif
If mousex()>btnxA and mousex()<btnxB and mousey()>btnyA and mousey()<btnyB and mouseclick()=1
debug_output$(1)="left mouse click"
scale object objnum,110,110,110
endif
Endfunction
rem ------------------------------------------------------
rem Deletebtn3D(objnum) Function By David Smith
rem ------------------------------------------------------
function Deletebtn3D(objnum)
delete object objnum
endfunction
