-
Notifications
You must be signed in to change notification settings - Fork 0
/
display.h
143 lines (110 loc) · 3.05 KB
/
display.h
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#ifndef DISPLAY_H
#define DISPLAY_H
#include "xwc.h"
#include "fisica.h"
#include "objetos.h"
#define WIDTH 1000
#define HEIGHT 600
#define FATOR 100000
/* Quantidade de rotacoes do sprite */
#define NUM_ROTACOES 32
#define MAX_FRAMES 32
#define MAX_ANIMS 128
typedef struct fixed {
Sprite s;
int pos[32][2];
} Fixed;
typedef struct sprites {
Sprite nave[2][NUM_ROTACOES];
Sprite projetil[NUM_ROTACOES];
Sprite planetaS;
Sprite explosao[MAX_FRAMES];
Fixed contagem[3];
Fixed go;
Fixed botao[OPTIONS_LIMIT][2];
Fixed coracao;
Fixed trophy[60];
} Sprites;
Sprites sprites;
/*
carregaSprite()
Carrega um sprite da pasta sprites.
Parâmetros:
win - janela de exibição
nome[] - nome do que deve ser carregado
width - largura do sprite
height - altura do sprite
s - apontador para onde o sprite deve ser armazenado
*/
void carregaSprite(PIC win, char nome[], int width, int height, Sprite *s);
/*
carregaRots()
Carrega os sprites das rotações de um objeto.
Parâmetros:
win - janela de exibição
nome[] - nome do objeto
width - largura dos sprites
height - altura dos sprites
s[] - vetor onde os sprites devem ser armazenados
*/
void carregaRots(PIC win, char nome[], int width, int height, Sprite s[]);
/*
carregaAnims()
Carrega os sprites de uma animação.
Parâmetros:
win - janela de exibição
nome[] - nome da animação
frames - número de frames da animação
width - largura dos frames
height - altura dos frames
s[] - vetor onde os frames da animação devem ser armazenados
*/
void carregaAnims(PIC win, char nome[], int frames, int width, int height, Sprite s[]);
/*
carregaObjetos()
Carrega todas as imagens usadas pelo programa
Parâmetros:
win - janela de exibição
*/
void carregaObjetos(PIC win);
/*
calculaDirecaoN()
Calcula a direção discreta do vetor dir.
Parâmetros:
dir[] - vetor cuja direção será calculada
*/
int calculaDirecaoN(double dir[2]);
/*
calculaFrame()
Calcula o frame atual da animação.
Parâmetros:
obj - apontador para objeto de categoria ANIMACAO
*/
int calculaFrame(Objeto *obj);
/*
imprimeSprite()
Imprime o sprite de obj em dest.
Parâmetros:
dest - PIC em que será impresso o sprite
obj - objeto a ser impresso
ind - posição do sprite no vetor de sprites do objeto
*/
void imprimeSprite(PIC dest, Objeto *obj, int ind);
/*
imprimeFixed()
Imprime o objeto fixo fixed em dest.
Parâmetros:
dest - PIC em que será impresso o sprite
fixed - objeto fixo a ser impresso
ind - índice da posição onde o fixed deve ser impresso
*/
void imprimeFixed(PIC dest, Fixed *fixed, int ind);
/*
imprimaObjetos()
Realiza todas as chamadas para impressão de objetos em
um dado instante.
Parâmetros:
pic - PIC em que serão feitas as impressões
*/
void imprimaObjetos(PIC pic);
#endif