/
platformer.c
72 lines (67 loc) · 4.29 KB
/
platformer.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
char a[] = {0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xd5,0x8d,0x5d,0xdd,0xdd,0xdd,0xdd,0xdd,0xd8,0x8d,0xdd,0xdd,0xdd,0xd5,0xdd,0xd8,0x88,0x8d,0xdd,0xd5,0x88,0xd8,0x88,0xd8,0x88,0x88,0x88,0x88,0x88,0x58,0x88,0x88,0x88,0xd8,0x88,0x88,0x88,0xd8,0x88,0x88,0x88,0x88,0x88,0x58,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x85,0x88,0x88,0x88,0x88,0x58,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x8a,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0xa8,0x88,0x88,0xa8,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0xa8,0x88,0x88,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0};
char b[] = {0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0xbb,0x9b,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xab,0x9a,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xab,0x9a,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xab,0x9a,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xab,0x9a,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0xbb,0xbb,0xbb,0xbb,0xbb,0xb9,0xbb,0xbb,0xaa,0xaa,0xaa,0xaa,0xaa,0xb9,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xb9,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xb9,0xaa,0xaa,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0xbb,0xbb,0xbb,0x9b,0xbb,0xbb,0xbb,0xbb,0xaa,0xaa,0xab,0x9a,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xab,0x9a,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xab,0x9a,0xaa,0xaa,0xaa,0xaa};
char c[] = {0xb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xb0,0xbc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xfb,0xbc,0xc9,0xc9,0xc9,0xc9,0xc9,0xcc,0xfb,0xbc,0xcc,0xcc,0xcc,0xcc,0xcc,0xc9,0xfb,0xbc,0x9c,0xcc,0xcc,0xcc,0xcc,0xcc,0xfb,0xbc,0xcc,0xcc,0xcc,0xcc,0xcc,0xc9,0xfb,0xbc,0x9c,0xcc,0xcc,0xcc,0xcc,0xcc,0xfb,0xbc,0xcc,0xcc,0xcc,0xcc,0xcc,0xc9,0xfb,0xbc,0x9c,0xcc,0xcc,0xcc,0xcc,0xcc,0xfb,0xbc,0xcc,0xcc,0xcc,0xcc,0xcc,0xc9,0xfb,0xbc,0x9c,0xcc,0xcc,0xcc,0xcc,0xcc,0xfb,0xbc,0xcc,0xcc,0xcc,0xcc,0xcc,0xc9,0xfb,0xbc,0x9c,0xcc,0xcc,0xcc,0xcc,0xcc,0xfb,0xbc,0xcc,0x9c,0x9c,0x9c,0x9c,0x9c,0xfb,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xb0};
char cloud1[] = {0x18,0x22,0x8,0x2a,0x8,0xa2,0x10,0xaa,0x8,0xab,0x8,0xba,0x10,0xbb,0x8,0xb0,0x8,0xb};
char cloud2[] = {0x80,0x22};
char cloud3[] = {0x1a,0x22,0x84,0x21,0x11,0x12,0x4,0x22,0x82,0x21,0x3,0x11,0x82,0x12,0x3,0x22,0x5,0x11,0x84,0x12,0x22,0x21,0x6,0x11,0x83,0x22,0x21,0x6,0x11,0x83,0x12,0x21,0x7,0x11,0x82,0x22,0x7,0x11,0x83,0x22,0x21,0x5,0x11,0x3,0x22,0x5,0x21,0x21,0x22};
char spr0[] = {0x0,0x0,0xbc,0x0,0x0,0x0,0xb,0xbb,0xc0,0x0,0x0,0xb,0x1b,0x10,0x0,0x0,0xb,0xbb,0xc0,0x0,0x0,0xb,0xbb,0xc0,0x70,0x0,0xbb,0xbb,0xb7,0x63,0xb,0xbb,0xbb,0x76,0x63,0xb,0xbb,0xb7,0xb6,0x63,0x6,0xbb,0x7b,0xb6,0x63,0xb,0x67,0xbb,0xb6,0x63,0xb,0x66,0xbb,0xb6,0x63,0x6,0xbb,0xeb,0xbc,0x30,0xb,0xc0,0x0,0xbc,0x0,0xb,0xc0,0x0,0xbc,0x0,0xb,0xc0,0x0,0xbc,0x0,0xb,0xbc,0x0,0xbb,0xc0};
char spr1[] = {0x0,0x0,0xbc,0x0,0x0,0x0,0xb,0xbb,0xc0,0x0,0x0,0xb,0x1b,0x10,0x0,0x0,0xb,0xbb,0xc0,0x70,0x0,0xb,0xbb,0xc7,0x0,0x0,0xbb,0xbb,0x7b,0x0,0xb,0xbb,0xb7,0xb6,0x63,0xb,0xbb,0x7b,0xb6,0x63,0x66,0xb7,0xbb,0xb6,0x63,0x6,0x6b,0xbb,0xb6,0x63,0x6,0x6b,0xbb,0xb6,0x63,0x6b,0xb3,0xbb,0xb6,0x63,0x0,0xbc,0xb,0xc0,0x30,0x0,0xbc,0xb,0xc0,0x0,0x0,0xbc,0xb,0xc0,0x0,0x0,0xbb,0xcb,0xbc,0x0};
int spr[] = {spr0,spr1};
int t[] = {
0,0,b,b,0,0,0,0,b,0,0,c,0,0,0,0,0,0,c,0,
0,b,b,b,0,0,0,b,b,0,0,0,0,b,0,0,0,0,0,0,
a,a,a,a,a,a,a,a,a,a,a,a,a,a,0,0,a,a,a,a
};
int i,key;
char cadr = 0;
void scrollscreen(){
if(spritegetvalue(1,S_X) > 80){
scroll(1,2);}
else if(spritegetvalue(1,S_X) < 40){
scroll(1,0);}
}
void init(){
for(i = 0; i < 16; i++){
putimagerle(cloud2, i * 16, 0, 16, 16);
putimagerle(cloud1, i * 16, 16, 16, 13);
}
putimagerle(cloud3, 64, 0, 16, 16);
putimagerle(cloud3, 2, 0, 16, 16);
loadtile(t, 16, 16, 20, 3);
getsprite(1,spr0);
putsprite(1, 20, 30);
spritesetvalue(1,S_WIDTH,10);
spritesetvalue(1,S_HEIGHT,16);
spritesetvalue(1,S_GRAVITY,1);
spritesetvalue(1,S_SOLID,1);
drawtile(10 ,70);
}
void main(){
init();
while(1){
getsprite(1,spr[cadr]);
key = getkey();
if(key & KEY_LEFT){
spritesetvalue(1,S_SPEEDX,-2);
cadr = 1 - cadr;
}
else if(key & KEY_RIGHT){
spritesetvalue(1,S_SPEEDX,2);
cadr = 1 - cadr;
}
else{
spritesetvalue(1,S_SPEEDX,0);
}
if(((key & KEY_B) > 0) && (spritegetvalue(1,1) > 50)){
if(spritegetvalue(1,S_SPEEDY) == 0){
spritesetvalue(1,S_SPEEDY,-10);
}
}
if(spritegetvalue(1,S_Y) > 128){
clearscreen();
init();
}
scrollscreen();
delayredraw();
}
}