-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathgame.c
More file actions
58 lines (51 loc) · 1.2 KB
/
game.c
File metadata and controls
58 lines (51 loc) · 1.2 KB
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
#include <stdio.h>
#include <math.h>
#include "gif.h"
#include "vga.h"
#ifndef M_PI
#define M_PI 3.14159
#endif
unsigned int SINEX[256];
unsigned int SINEY[256];
void init_sin()
{
int i;
for( i = 0;i < 256; ++i ) {
SINEX[i] = 320 * (( sin(2.0*M_PI*i/256.0) + 1.0) / 2.0);
SINEY[i] = 200 * (( sin(2.0*M_PI*i/128.0) + 1.0) / 2.0);
}
}
int main()
{
struct image *img[4];
word x, y, frame = 0;
int modex = 1, i = 0;
init_sin();
img[0] = load_gif("run-1.gif", modex);
img[1] = load_gif("run-2.gif", modex);
img[2] = load_gif("run-3.gif", modex);
img[3] = load_gif("run-4.gif", modex);
for( i = 0; i < 4; ++i ) {
if( img[i] == NULL ) {
printf( "Couldn't load image %u\n", i );
return 1;
}
}
set_mode_y();
set_palette( &img[0]->palette[0][0] );
while( !kbhit() ) {
i = frame % 4;
if( modex ) {
blit2page( img[i]->data, vga_page[1], 0, 0, img[i]->width, img[i]->height );
} else {
copy2page( img[i]->data, vga_page[1], 0, 0, img[i]->width, img[i]->height );
}
page_flip( &vga_page[0], &vga_page[1] );
frame++;
delay(250);
}
getch();
set_text_mode();
return 0;
}