Тема: Меню
Показать сообщение отдельно
Старый 17.01.2006, 23:28   #1
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Вот здесь наработки меню.

Пока что работаю над переключением режима экрана

клавишей 1,2,3,4 можно выбрать режим.
Затем жмем клавишу esc и...все работает.

NGIU я решил не использовать, по некоторым причинам

Вопросы

1) Достаточно ли этот метод хорош?
2) если нет, то как сделать лучше (оптимальнее)?

Не стоит думать что это ошибка то, что переключение 3D режимов я пишу в 2d разделе. Просто это только начальная стадия меню. Дальше будет работа в 2d.

Прошу помочь мне в данном вопросе.

Global a1=320; переменные для режимов графики 
Global a2=240
Global a3=32
Global a4=2


Graphics3D a1,a2,a3,a4; то, что переключать надо

fnmainmenu()

;--------------------------------------------------------------------------------------------------------
;Эти строки не важны. Мы не будем их использовать или изменять!!!!!!!!!!!!!
Global mesh_3ds=LoadAnimMesh( "makbot\mak_robotic.3ds" );anim seq 0
Global mesh_x=LoadAnimMesh( "makbot\mak_robotic.x" )	;anim seq 0
Global pivot=CreatePivot()
;Эти строки не важны. Мы не будем их использовать или изменять!!!!!!!!!!!!!
;--------------------------------------------------------------------------------------------------------

fnLoadscene(); это просто для проверки, что меню "пашет"
;ЦИКЛ!!!!!!!!!!!!!!!
While Not KeyHit(1)



fnfignya(); это просто для проверки, что меню "пашет"
UpdateWorld
RenderWorld
Flip
	
Wend
;ЦИКЛ!!!!!!!!!!!!!!!

End

Function fnmainmenu()
 fon=LoadImage("graphics\mainFont.jpg") 
DrawImage fon,0,0


Repeat

If KeyHit (2)=True; если нажали клавишу 1
ClearWorld; очистим мир от зла
a1=640; режим
a2=480
a3=32
a4=2
Graphics3D a1,a2,a3,a4; меняем графу
End If 


If KeyHit (3)=True; если нажали клавишу 2
ClearWorld
a1=800
a2=600
a3=32
a4=2
Graphics3D a1,a2,a3,a4; меняем графу
End If 

If KeyHit (4)=True; если нажали клавишу 3
ClearWorld
a1=1024
a2=768
a3=32
a4=2
Graphics3D a1,a2,a3,a4; меняем графу
End If 



Flip
RenderWorld
Until KeyHit(1)
End Function


;-------------------------------------------------------------------------------------------------------
;Эти функции не важны. Мы не будем их использовать или изменять!!!!!!!!!!!!!
Function fnLoadscene()
LoadAnimSeq mesh_3ds,"makbot\mak_running.3ds"	;anim seq 1
PositionEntity mesh_3ds,-15,-15,0
LoadAnimSeq mesh_x,"makbot\mak_running.x" ;anim seq 1
PositionEntity mesh_x,+15,-15,0
cam=CreateCamera( pivot )
PositionEntity cam,0,0,-100
lit=CreateLight()
RotateEntity lit,45,45,0
Animate mesh_3ds,2;start ping-pong anims...
Animate mesh_x, 2
trans=10
End Function
Function fnfignya()
If KeyHit(57)
trans=10-trans
EndIf
If KeyDown(28)
If AnimSeq(mesh_3ds)=0 Animate mesh_3ds,1,.5,1,trans
If AnimSeq(mesh_x )=0 Animate mesh_x, 1,.5,1,trans
Else
If AnimSeq(mesh_3ds)=1 Animate mesh_3ds,2,1,0,trans
If AnimSeq(mesh_x )=1 Animate mesh_x ,2,1,0,trans
EndIf
If KeyDown(30) MoveEntity cam,0,0,10
If KeyDown(44) MoveEntity cam,0,0,-10
If KeyDown(203) TurnEntity pivot,0,3,0
If KeyDown(205) TurnEntity pivot,0,-3,0
End Function 
;Эти функции не важны. Мы не будем их использовать или изменять!!!!!!!!!!!!!
;--------------------------------------------------------------------------------------------------------
(Offline)
 
Ответить с цитированием