1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
require 'ruby2d'
set title: "Ruby 2D — Mouse", width: 400, height: 300
on :mouse do |event|
puts event
end
s1 = Square.new(5, 5, 25, [1, 1, 0, 1]) # mouse down square
s2 = Square.new(188, 10, 25) # mouse scroll square
s3 = Square.new(188, 137, 25, [1, 1, 1, 1]) # mouse move delta square
s4 = Square.new(35, 5, 10) # mouse move position square
on :mouse_down do |event|
case event.button
when :left
s1.color = [1, 0, 0, 1]
when :middle
s1.color = [0, 0, 1, 1]
when :right
s1.color = [0, 1, 0, 1]
end
s1.x = event.x
s1.y = event.y
end
on :mouse_up do |event|
s1.color = [1, 1, 0, 1]
s1.x = event.x
s1.y = event.y
end
on :mouse_scroll do |event|
s2.x = s2.x + event.delta_x
s2.y = s2.y + event.delta_y
end
on :mouse_move do |event|
s3.x = 188 + event.delta_x
s3.y = 137 + event.delta_y
s4.x = event.x - 5
s4.y = event.y - 5
end
# Crosshairs
Rectangle.new(199, 0, 2, 300, [1, 0, 0, 1])
Rectangle.new(0, 149, 400, 2, [1, 0, 0, 1])
on :key_down do |event|
close if event.key == 'escape'
end
show
|