-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmouse.bah
78 lines (64 loc) · 1.77 KB
/
mouse.bah
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/////////////////////////////////////////////////////////////
// Mouse demo using OpenGL and GLUT in Bah. //
// To compile, use 'bah ./mouse.bah -d'. //
// //
// © Aloïs Laurent Boë //
/////////////////////////////////////////////////////////////
#import "iostream.bah"
#import "time.bah"
#import "rand.bah"
#import "../vbah.bah"
win = new window
//Color of the circle
color rgb
//Circle position
pos vec
//Set the circle color to white when window is initiated
init() {
pos = vec(0.0, 0.0)
color = rgb(1.0, 1.0, 1.0)
}
display() {
//Draw the circle every frame
drawCircle(pos, 0.05, color)
}
click(button int, pressed bool, x int, y int) {
//Translate the position of the event from pixels to window coordinates
f = vec(<float>x, <float>y)
pixelsToCoords(&f)
//Update position
pos.set(f)
//Change the color if the button is pressed or released
if pressed == true {
color = rgb(1.0, 0.0, 0.0)
} else {
color = rgb(1.0, 1.0, 1.0)
}
}
drag(x int, y int) {
//Translate the position of the event from pixels to window coordinates
f = vec(<float>x, <float>y)
pixelsToCoords(&f)
//Update position
pos.set(f)
//Set the color to green
color = rgb(0.0, 1.0, 0.0)
}
move(x int, y int) {
//Translate the position of the event from pixels to window coordinates
f = vec(<float>x, <float>y)
pixelsToCoords(&f)
//Update position
pos.set(f)
}
main(args []str) int {
//launching the window
win = window(600, 600, "Mouse")
win.display = display
win.click = click
win.drag = drag
win.init = init
win.move = move
win.launch()
return 0
}