-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathBallDemo.cpp
127 lines (107 loc) · 2.81 KB
/
BallDemo.cpp
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# include "iGraphics.h"
int ball1_x = 100, ball1_y = 100,ball2_x = 200,ball2_y = 200;
int dx, dy;
int balltimer_1,balltimer_2;
/*
function iDraw() is called again and again by the system.
*/
void iDraw()
{
//place your drawing codes here
iClear();
iSetColor(255, 100, 10);
iFilledCircle(ball1_x, ball1_y, 7);
iFilledCircle(ball2_x, ball2_y, 7);
iSetColor(255, 255, 255);
iText(10, 10, "Press p for pause, r for resume, END for exit.");
}
/*
function iMouseMove() is called when the user presses and drags the mouse.
(mx, my) is the position where the mouse pointer is.
*/
void iMouseMove(int mx, int my)
{
//place your codes here
}
/*
function iPassiveMouse() is called when the user moves the mouse.
(mx, my) is the position where the mouse pointer is.
*/
void iPassiveMouse(int mx, int my)
{
//place your codes here
}
/*
function iMouse() is called when the user presses/releases the mouse.
(mx, my) is the position where the mouse pointer is.
*/
void iMouse(int button, int state, int mx, int my)
{
if(button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
{
//place your codes here
}
if(button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN)
{
//place your codes here
}
}
/*
function iKeyboard() is called whenever the user hits a key in keyboard.
key- holds the ASCII value of the key pressed.
*/
void iKeyboard(unsigned char key)
{
if(key == 'p')
{
//do something with 'q'
iPauseTimer(balltimer_1);
iResumeTimer(balltimer_2);
}
if(key == 'r')
{
iResumeTimer(balltimer_1);
iPauseTimer(balltimer_2);
}
//place your codes for other keys here
}
/*
function iSpecialKeyboard() is called whenver user hits special keys like-
function keys, home, end, pg up, pg down, arraows etc. you have to use
appropriate constants to detect them. A list is:
GLUT_KEY_F1, GLUT_KEY_F2, GLUT_KEY_F3, GLUT_KEY_F4, GLUT_KEY_F5, GLUT_KEY_F6,
GLUT_KEY_F7, GLUT_KEY_F8, GLUT_KEY_F9, GLUT_KEY_F10, GLUT_KEY_F11, GLUT_KEY_F12,
GLUT_KEY_LEFT, GLUT_KEY_UP, GLUT_KEY_RIGHT, GLUT_KEY_DOWN, GLUT_KEY_PAGE UP,
GLUT_KEY_PAGE DOWN, GLUT_KEY_HOME, GLUT_KEY_END, GLUT_KEY_INSERT
*/
void iSpecialKeyboard(unsigned char key)
{
if(key == GLUT_KEY_END)
{
exit(0);
}
//place your codes for other keys here
}
void ballChange1(){
ball1_x += dx;
ball1_y += dy;
if(ball1_x > 400 || ball1_x < 0)dx = -dx;
if(ball1_y > 400 || ball1_y < 0)dy = -dy;
}
void ballChange2(){
ball2_x += dx;
ball2_y += dy;
if(ball2_x > 400 || ball2_x < 0)dx = -dx;
if(ball2_y > 400 || ball2_y < 0)dy = -dy;
}
int main()
{
//place your own initialization codes here.
balltimer_1 = iSetTimer(5, ballChange1);
balltimer_2 = iSetTimer(5, ballChange2);
dx = 5;
dy = 7;
iInitialize(400, 400, "Ball Demo");
iStart();
return 0;
}