Показать сообщение отдельно
Старый 01.07.2009, 15:55   #1
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Сенсорный ЕЛТ-монитор или как обмануть новоненького учителя по информатике :)

Вообщем подобный боян встретил года 3-4 назад !! Только там был прикол с картами... ну да ладно !! Вот случайно вспомнил про эту штуку и набросал на блице подобный пример !!
Прикол собственно в чем:
Позовите кого-то из знакомых или друзей к монитору и попросите дотронуться пальцем к одному с кружочков определенного цвета !! Только незабудьте включить СИ ;-) !! т.е. когда он/она дотрагивается, держит вы говорите там типо "Посильней принимай палец" или "По серединке, по серединке нажимай" ну и все такое !!
А вы в это время держа мышку в руках, подводите ее с "ПРАВИЛЬНОЙ" стороны к кнопке "УГАДАТЬ" !! Как определить правильную сторону ??
Вообщем цвета располагаются так: Красный, Зеленый, Синий, Розовый !! Каждой стороне кнопки с которой вы будете подводить курсор мышки соответствует определенный цвет !! ВЕРХ - красный, СЛЕВА - зеленый, НИЗ - синий, СПРАВА - розовый !!
Просто аккуратно подводите мышку с "нужной" стороны и кликайте !! Вот и все !!
Извините если боян конечно, но мама и сестра были в недоумении !!

Graphics 800,600,32,2
SetBuffer BackBuffer()
SetFont LoadFont ("Arial Cyr",32,1)

anchor_X% = 400
anchor_Y% = 200
size_X = 200
size_Y = 30
offset% = 10
radius% = 100
result_OK% = 0
result_index% = 4

Dim Colors$(5)
Colors(0) = "Красный"
Colors(1) = "Зеленый"
Colors(2) = "Синий"
Colors(3) = "Розовый"
Colors(4) = "Не найдено"

Repeat

mX = MouseX()
mY = MouseY()

Cls

Color 255,0,0			
Oval 50,25,radius,radius
Color 0,255,0			
Oval 50,175,radius,radius
Color 0,0,255			
Oval 50,325,radius,radius
Color 255,0,255		
Oval 50,475,radius,radius

Color 255,255,255
Rect anchor_X+size_Y+offset, anchor_Y+size_Y+offset, size_X-2*offset, size_X-2*offset;	Center

If mX>(anchor_X+size_Y+offset) And mX<(anchor_X+size_Y+size_X-offset) And mY>(anchor_Y+size_Y+offset) And mY<(anchor_Y+size_Y+size_X-offset) Then
	If MouseHit(1) Then result_OK = 1
Else
	result_OK = 0
EndIf

Color 0,0,0
If result_OK=1 Then
	Text anchor_X+size_X*0.65, anchor_Y+size_X*0.65, Colors(result_index), 1, 1
EndIf

If result_OK=0 Then
	Text anchor_X+size_X*0.65, anchor_Y+size_X*0.65, "УГАДАТЬ", 1, 1
	If mX>(anchor_X+size_Y) And mX<(anchor_X+size_Y+size_X) And mY>anchor_Y And mY<(anchor_Y+size_Y) Then result_index=0
	If mX>(anchor_X) And mX<(anchor_X+size_Y) And mY>(anchor_Y+size_Y) And mY<(anchor_Y+size_Y+size_X) Then result_index=1
	If mX>(anchor_X+size_Y+size_X) And mX<(anchor_X+2*size_Y+size_X) And mY>(anchor_Y+size_Y) And mY<(anchor_Y+size_Y+size_X) Then result_index=3
	If mX>(anchor_X+size_Y) And mX<(anchor_X+size_Y+size_X) And mY>(anchor_Y+size_X+size_Y) And mY<(anchor_Y+size_X+2*size_Y) Then result_index=2
EndIf

Flip
Until KeyHit(1)
End

Последний раз редактировалось IGR, 01.07.2009 в 18:46.
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо IGR за это полезное сообщение:
baton4ik (17.04.2010), ELIAS (12.07.2009), h1dd3n (05.07.2009), H@NON (01.07.2009)