-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.c
129 lines (100 loc) · 2.59 KB
/
main.c
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
128
129
//
// main.c
// BrickGame
//
// Created by Daniel Pereira, Rafael Hesse and Fernando Salhani on 14/11/12.
// Copyright (c) 2012 RDF. All rights reserved.
//
#include "gameManager.h"
brick *bloco = NULL;
float xbarra = (LARGURA-LBARRA)/2;
int lastFrameTime;
float elapsedTime;
circ bola;
int k = 2;
int onGame = 1;
int winlose = 0;
int preStart = 1;
//Some glut functions do not accept parameters, therefore this file will have some global variables solely for these funcitons
void keyboard(int key, int x, int y){
//pad movement
if(xbarra >=0 && xbarra + LBARRA <= LARGURA){
if (key == GLUT_KEY_LEFT && xbarra > 0)
k = 0;
if (key == GLUT_KEY_RIGHT && xbarra + LBARRA < LARGURA)
k = 1;
}
else{
if(xbarra <= 0)
xbarra=0;
if(xbarra + LBARRA > LARGURA)
xbarra = LARGURA - LBARRA;
k = 2;
}
//MOVIMENTO BARRA
//if yes
if (key == 115){
if(onGame == 0)
resetGame(&bola, bloco, &onGame, &xbarra, &preStart);
}
//SIM
//NAO
if (key==110){
if(onGame==0)
exit(0);
}
//NAO
//ESC
if (key==27){
exit(0);
}
//ESC
//SPACE
if(key==32) preStart=0;
//SPACE
glutPostRedisplay();
}
void keyboardup(int key, int x, int y){
if (key == GLUT_KEY_LEFT)
k = 2;
if (key == GLUT_KEY_RIGHT)
k = 2;
}
void display(void){
tempo(&lastFrameTime, &elapsedTime);
preformCheck(&onGame, &winlose, bloco, bola);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
drawAll(onGame, bloco, &xbarra, k, &elapsedTime, &bola, preStart, winlose);
glutSwapBuffers();
}
void reshape(int width, int height){
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0, width, 0, height);
glMatrixMode(GL_MODELVIEW);
glutInitWindowSize(LARGURA, ALTURA);
}
void idle(void){
glutPostRedisplay();
}
int main (int argc, char** argv){
bola.x = (LARGURA)/2;
bola.y = HBARRA + RBOLA + 0.1;
bola.vx = VBOLAX;
bola.vy = VBOLAY;
//allocate bricks
bloco = (brick *)malloc(NBLOCOS*sizeof(brick));
//fillMatrix(bloco);
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA|GLUT_DOUBLE|GLUT_DEPTH);
glutInitWindowSize(LARGURA, ALTURA);
glutCreateWindow("BrickGame");
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutIdleFunc(idle);
glutSpecialFunc(keyboard);
glutSpecialUpFunc(keyboardup);
fillMatrix(bloco);
glutMainLoop();
}