Показать сообщение отдельно
Старый 16.01.2008, 18:46   #38
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: управление в RPG

по поводу обнуления счетчика. конкретно в его задаче. там нужно ОГРАНИЧИВАТЬ. потому, что если он его обнулит в ТОМ МЕСТЕ, то даблклик не сработает никогда. ОБНУЛЯТЬ счетчик надо при выполнении действия, в завершение вот вам пример счетчков кликов.

на первый квадрат надо кликать один раз
на второй два
на третий три

Graphics 800,600,32,2
SetBuffer BackBuffer()

SetFont LoadFont("Times New Roman",24,1)
mclick=0 ; Число кликов
While Not KeyDown(1)
	
	;Копировать отсюда
	md1=MouseDown(1)	;
	md2=MouseDown(2)	;
	
	If md1
		mu_tm=0
		md_tm=md_tm+1
		If md_tm>15 Then mclick=0
		If md1_dn
			mclick=mclick+1
			If mclick=1 Then mfcx=MouseX():mfcy=MouseY()
			If mclick=2
				If Abs(mfcx-MouseX())>3 Or Abs(mfcy-MouseY())>3 Then mclick=0
			EndIf
		md1_dn=0
		EndIf
	Else
		md1_dn=1
		md_tm=0
		mu_tm=mu_tm+1
		If mu_tm>15 Then mclick=0
	EndIf
	;И до сюда
	
	If chn1 Then Color 0,255,255 Else Color 255,0,0
	Rect 100,100,100,100
	
	If chn2 Then Color 255,0,255 Else Color 0,255,0
	Rect 300,100,100,100
	
	If chn3 Then Color 255,255,0 Else Color 0,0,255
	Rect 500,100,100,100
	
	Color 0,0,0
	
	Text 150,150,"1",1,1
	Text 350,150,"2",1,1
	Text 550,150,"3",1,1
	
	;Обработка/ ето важно понять
	If MouseY()>100 And MouseY()<200
	
		If MouseX()>100 And MouseX()<200
			If mclick=1
				chn1=1-chn1 ;что то сделаем
				mclick=0	;ОБНУЛИМ счетчик здесь! а не где нибудь еще
			EndIf
		EndIf

		If MouseX()>300 And MouseX()<400
			If mclick=2
				chn2=1-chn2 ;что то сделаем
				mclick=0	;ОБНУЛИМ счетчик здесь! а не где нибудь еще
			EndIf
		EndIf
		
		If MouseX()>500 And MouseX()<600
			If mclick=3
				chn3=1-chn3 ;что то сделаем
				mclick=0	;ОБНУЛИМ счетчик здесь! а не где нибудь еще
			EndIf
		EndIf
			
	EndIf
	
	Flip
Wend
здесь откоментен самый главный участок (чуть изминенная версия)
http://likosoft.ucoz.ru/forum/29-116-1

Последний раз редактировалось HolyDel, 16.01.2008 в 18:59.
(Offline)
 
Ответить с цитированием