Показать сообщение отдельно
Старый 17.06.2011, 03:36   #6
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений
(для 220 пользователей)
Ответ: Проблема с MouseHit(1)

Сообщение от 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 HeightGameSelect=1
If RectsOverlap (rect1 X,rect1 Y,rect1 Width,rect1 Height,rect2 X,rect2 Y,rect2 Width,rect2 HeightGameSelect=
Думаю понятно
Объясню...
Тут ты функциями RectsOverlap создаешь прямоугольники в определенной области, и когда в эту область попадает курсор мыши ПРИМЕР:
If RectsOverlap(MouseX(),MouseY(),1,1,(GraphW/2)-(456/2),(GraphH/2)-(144/2)+112,152,34GameSelect=1
If RectsOverlap(MouseX(),MouseY(),1,1,(GraphW/2)-(456/2)+456-152,(GraphH/2)-(144/2)+112,152,34GameSelect=
Переменная 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,18GameSelect=1
If RectsOverlap(MouseX(),MouseY(),1,1,10,30,80,18GameSelect=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 
Может тебе это и не надо, но все же...

Последний раз редактировалось L-ee-X, 21.06.2011 в 19:06.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
maxturbo (17.06.2011)