Сообщение от Karasy
Большое спасибо !
А я пол дня голову ломал...буду знать !!!
|
Судя по тому что ты хочешь сделать, тебе лучше использовать функцию:
RectsOverlap (rect1 X,rect1 Y,rect1 Width,rect1 Height,rect2 X,rect2 Y,rect2 Width,rect2 Height)
Примерно вот так:
If MouseHit(1)
Select GameSelect
Case 1
;Функция начало игры
Case 2
;Функция выхода из игры
End Select
EndIf
GameSelect=0
If RectsOverlap (rect1 X,rect1 Y,rect1 Width,rect1 Height,rect2 X,rect2 Y,rect2 Width,rect2 Height) GameSelect=1
If RectsOverlap (rect1 X,rect1 Y,rect1 Width,rect1 Height,rect2 X,rect2 Y,rect2 Width,rect2 Height) GameSelect=2
Думаю понятно
Объясню...
Тут ты функциями RectsOverlap создаешь прямоугольники в определенной области, и когда в эту область попадает курсор мыши ПРИМЕР:
If RectsOverlap(MouseX(),MouseY(),1,1,(GraphW/2)-(456/2),(GraphH/2)-(144/2)+112,152,34) GameSelect=1
If RectsOverlap(MouseX(),MouseY(),1,1,(GraphW/2)-(456/2)+456-152,(GraphH/2)-(144/2)+112,152,34) GameSelect=2
Переменная GameSelect меняет свое значение и в то время пока курсор находится в этой области и ты нажимаешь кнопку ЛКМ то происходит вызов функции которые прописаны в Case 1 и Case 2
Соответственно Если GameSelect=1 то Case 1
Если GameSelect=2 то Case 2
Вот для наглядности готовый код того что ты хочешь сделать:
Graphics3D 640,480,32,2
SetBuffer BackBuffer()
Global font_arial=LoadFont("Arial CYR",17)
Repeat
If MouseHit(1)
Select GameSelect
Case 1
;Тут загрузка твоей игры
Case 2
End
End Select
EndIf
Cls
GameSelect=0
If RectsOverlap(MouseX(),MouseY(),1,1,10,10,80,18) GameSelect=1
If RectsOverlap(MouseX(),MouseY(),1,1,10,30,80,18) GameSelect=2
RenderWorld
UpdateWorld
SetFont font_arial
If GameSelect=1
Color 255,0,0
Text 10,10,"Новая Игра"
Else
Color 0,0,255
Text 10,10,"Новая Игра"
EndIf
If GameSelect=2
Color 255,0,0
Text 10,30,"Выход"
Else
Color 0,0,255
Text 10,30,"Выход"
EndIf
Flip
Until KeyHit(1)
End
Может тебе это и не надо, но все же...