Merge pull request #1 from KikooDX/master
Saved indentation. Tile type uses a typedef.
This commit is contained in:
commit
32d32070c6
176
src/drawiso.c
176
src/drawiso.c
|
@ -8,111 +8,111 @@ extern bopti_image_t img_2;
|
|||
extern bopti_image_t img_3;
|
||||
extern bopti_image_t img_3;
|
||||
|
||||
void draw_map_at(int map[], int posx, int posy, int width) {
|
||||
int j = 0;
|
||||
int x = 0;
|
||||
for(int i=0; i < width; i++) {
|
||||
switch(map[i]) {
|
||||
case 1:
|
||||
draw_iso(x,j,posx,posy,&img_1);
|
||||
break;
|
||||
case 2:
|
||||
draw_iso(x,j,posx,posy,&img_2);
|
||||
break;
|
||||
case 3:
|
||||
draw_from_bottom(x,j,posx,posy,&img_3,16);
|
||||
break;
|
||||
case 9:
|
||||
draw_iso(x,j,posx,posy,&img_3);
|
||||
break;
|
||||
}
|
||||
x++;
|
||||
if(!(i%level_width) && i != 0) { j++; x = 0; }
|
||||
}
|
||||
dupdate();
|
||||
void draw_map_at(tile_t map[], int posx, int posy, int width) {
|
||||
int j = 0;
|
||||
int x = 0;
|
||||
for(int i=0; i < width; i++) {
|
||||
switch(map[i]) {
|
||||
case 1:
|
||||
draw_iso(x,j,posx,posy,&img_1);
|
||||
break;
|
||||
case 2:
|
||||
draw_iso(x,j,posx,posy,&img_2);
|
||||
break;
|
||||
case 3:
|
||||
draw_from_bottom(x,j,posx,posy,&img_3,16);
|
||||
break;
|
||||
case 9:
|
||||
draw_iso(x,j,posx,posy,&img_3);
|
||||
break;
|
||||
}
|
||||
x++;
|
||||
if(!(i%level_width) && i != 0) { j++; x = 0; }
|
||||
}
|
||||
dupdate();
|
||||
}
|
||||
|
||||
void draw_map_player(int map[], int indx, int indy, int taillemap) {
|
||||
int j = 0;
|
||||
int x = 0;
|
||||
void draw_map_player(tile_t map[], int indx, int indy, int taillemap) {
|
||||
int j = 0;
|
||||
int x = 0;
|
||||
|
||||
int coomap = indx + indy*level_width;
|
||||
int beginmap = coomap - player_view - level_width*player_view;
|
||||
int coomap = indx + indy*level_width;
|
||||
int beginmap = coomap - player_view - level_width*player_view;
|
||||
|
||||
int beginline = coomap - player_view * level_width - coomap%level_width;
|
||||
int beginline = coomap - player_view * level_width - coomap%level_width;
|
||||
|
||||
if(beginmap < 0) {
|
||||
beginmap = indx - player_view;
|
||||
if(beginmap < 0) beginmap = 0;
|
||||
}
|
||||
if(beginmap < 0) {
|
||||
beginmap = indx - player_view;
|
||||
if(beginmap < 0) beginmap = 0;
|
||||
}
|
||||
|
||||
if((coomap - player_view)%level_width > coomap%level_width) {
|
||||
if(beginline > 0) {
|
||||
beginmap = beginline;
|
||||
} else {
|
||||
beginmap = 0;
|
||||
}
|
||||
}
|
||||
if((coomap - player_view)%level_width > coomap%level_width) {
|
||||
if(beginline > 0) {
|
||||
beginmap = beginline;
|
||||
} else {
|
||||
beginmap = 0;
|
||||
}
|
||||
}
|
||||
|
||||
int next = indx + player_view + beginmap/level_width * level_width;
|
||||
int endline = beginmap+level_width-beginmap%level_width-1;
|
||||
|
||||
if(next > endline) next = endline;
|
||||
if(next > endline) next = endline;
|
||||
|
||||
if(next < 0) {
|
||||
next = indx + player_view;
|
||||
}
|
||||
if(next < 0) {
|
||||
next = indx + player_view;
|
||||
}
|
||||
|
||||
int indypro = indy + player_view;
|
||||
if(indypro > taillemap/level_width-1) {
|
||||
indypro = taillemap/level_width-1;
|
||||
}
|
||||
int endmap = next%level_width + level_width*indypro;
|
||||
int indypro = indy + player_view;
|
||||
if(indypro > taillemap/level_width-1) {
|
||||
indypro = taillemap/level_width-1;
|
||||
}
|
||||
int endmap = next%level_width + level_width*indypro;
|
||||
|
||||
int ecart = next - beginmap;
|
||||
int xcentre = 0, ycentre = 0;
|
||||
|
||||
for(int i = beginmap; i <= endmap; i++) {
|
||||
x++;
|
||||
if(i == coomap) {xcentre = x-1; ycentre = j; break;}
|
||||
if(i == beginmap + ecart + j * level_width) {
|
||||
j++;
|
||||
x=0;
|
||||
i = beginmap + j*level_width-1;
|
||||
}
|
||||
}
|
||||
|
||||
j=0;
|
||||
x=4-xcentre;
|
||||
for(int i = beginmap; i <= endmap; i++) {
|
||||
int y = j + (2-ycentre);
|
||||
switch(map[i]) {
|
||||
case 1:
|
||||
draw_iso(x,y,150,60,&img_1);
|
||||
break;
|
||||
case 2:
|
||||
draw_iso(x,y,150,60,&img_2);
|
||||
break;
|
||||
case 3:
|
||||
draw_from_bottom(x,y,150,60,&img_3,16);
|
||||
break;
|
||||
case 9:
|
||||
draw_iso(x,y,150,60,&img_3);
|
||||
break;
|
||||
}
|
||||
x++;
|
||||
if(i==beginmap+ecart+j*level_width) {
|
||||
j++;
|
||||
x=4-xcentre;
|
||||
i = beginmap + j*level_width-1;
|
||||
}
|
||||
}
|
||||
int ecart = next - beginmap;
|
||||
int xcentre = 0, ycentre = 0;
|
||||
|
||||
for(int i = beginmap; i <= endmap; i++) {
|
||||
x++;
|
||||
if(i == coomap) {xcentre = x-1; ycentre = j; break;}
|
||||
if(i == beginmap + ecart + j * level_width) {
|
||||
j++;
|
||||
x=0;
|
||||
i = beginmap + j*level_width-1;
|
||||
}
|
||||
}
|
||||
|
||||
j=0;
|
||||
x=4-xcentre;
|
||||
for(int i = beginmap; i <= endmap; i++) {
|
||||
int y = j + (2-ycentre);
|
||||
switch(map[i]) {
|
||||
case 1:
|
||||
draw_iso(x,y,150,60,&img_1);
|
||||
break;
|
||||
case 2:
|
||||
draw_iso(x,y,150,60,&img_2);
|
||||
break;
|
||||
case 3:
|
||||
draw_from_bottom(x,y,150,60,&img_3,16);
|
||||
break;
|
||||
case 9:
|
||||
draw_iso(x,y,150,60,&img_3);
|
||||
break;
|
||||
}
|
||||
x++;
|
||||
if(i==beginmap+ecart+j*level_width) {
|
||||
j++;
|
||||
x=4-xcentre;
|
||||
i = beginmap + j*level_width-1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void draw_iso(int i, int j, int posx, int posy, bopti_image_t *image) {
|
||||
dimage(posx+(-j*tile+i*tile),posy+((i*tile/2)+(j*tile/2)),image);
|
||||
dimage(posx+(-j*tile+i*tile),posy+((i*tile/2)+(j*tile/2)),image);
|
||||
}
|
||||
|
||||
void draw_from_bottom(int i, int j, int posx, int posy, bopti_image_t *image, int height) {
|
||||
draw_iso(i,j,posx,posy-height,image);
|
||||
draw_iso(i,j,posx,posy-height,image);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
void draw_map_at(int map[], int taillex, int tailley, int width);
|
||||
void draw_map_player(int map[], int taillex, int tailley, int taillemap);
|
||||
typedef uint8_t tile_t;
|
||||
|
||||
void draw_map_at(tile_t map[], int taillex, int tailley, int width);
|
||||
void draw_map_player(tile_t map[], int taillex, int tailley, int taillemap);
|
||||
void draw_iso(int i, int j, int posx, int posy, bopti_image_t *image);
|
||||
void draw_from_bottom(int i, int j, int posx, int posy, bopti_image_t *image, int height);
|
||||
|
|
49
src/main.c
49
src/main.c
|
@ -8,37 +8,36 @@
|
|||
int main(void)
|
||||
{
|
||||
dclear(C_WHITE);
|
||||
int map[450] =
|
||||
{ 0, 0, 0, 1, 2, 0, 2, 2, 3, 0, 0, 2, 0, 1, 3, 0, 0, 0, 3, 0, 0, 3, 3, 0, 3, 2, 2, 2, 3, 0, 1, 0, 0, 2, 0, 3, 1, 2, 2, 0, 1, 1, 2, 0, 2, 2, 3, 2, 2, 1, 3, 0, 3, 1, 0, 2, 2, 1, 2, 1, 3, 3, 1, 3, 2, 2, 3, 1, 1, 1, 3, 0, 2, 2, 3, 2, 1, 1, 2, 3, 1, 3, 3, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 2, 1, 0, 1, 0, 3, 2, 2, 0, 2, 3, 0, 3, 0, 2, 2, 1, 1, 2, 2, 3, 0, 2, 2, 2, 3, 1, 3, 2, 1, 1, 1, 3, 1, 2, 2, 1, 3, 2, 0, 2, 2, 2, 0, 2, 2, 3, 3, 0, 1, 1, 0, 2, 0, 1, 0, 2, 2, 2, 3, 0, 3, 1, 3, 3, 0, 3, 0, 0, 0, 3, 0, 1, 0, 0, 1, 3, 3, 1, 2, 1, 0, 1, 3, 3, 3, 0, 0, 0, 1, 3, 3, 0, 2, 1, 3, 1, 0, 2, 1, 2, 3, 0, 1, 2, 0, 1, 0, 2, 0, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 0, 1, 0, 0, 2, 0, 3, 3, 1, 2, 2, 1, 1, 1, 3, 1, 0, 0, 1, 2, 1, 0, 1, 1, 3, 1, 3, 2, 1, 0, 1, 3, 3, 2, 2, 1, 0, 1, 2, 3, 3, 1, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 1, 3, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 3, 3, 3, 3, 2, 1, 1, 1, 1, 3, 3, 1, 0, 1, 0, 0, 1, 1, 3, 2, 2, 2, 0, 0, 1, 1, 0, 3, 3, 3, 2, 3, 1, 2, 1, 1, 0, 1, 1, 0, 0, 2, 0, 0, 2, 1, 1, 2, 0, 0, 3, 2, 0, 2, 3, 3, 2, 0, 3, 2, 3, 2, 0, 0, 3, 0, 2, 0, 1, 0, 3, 3, 3, 0, 1, 3, 3, 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, 1, 0, 3, 1, 1, 3, 2, 0, 0, 2, 1, 0, 1, 0, 3, 0, 1, 1, 3, 3, 0, 1, 2, 2, 3, 0, 1, 1, 1, 0 };
|
||||
tile_t map[450] = { 0, 0, 0, 1, 2, 0, 2, 2, 3, 0, 0, 2, 0, 1, 3, 0, 0, 0, 3, 0, 0, 3, 3, 0, 3, 2, 2, 2, 3, 0, 1, 0, 0, 2, 0, 3, 1, 2, 2, 0, 1, 1, 2, 0, 2, 2, 3, 2, 2, 1, 3, 0, 3, 1, 0, 2, 2, 1, 2, 1, 3, 3, 1, 3, 2, 2, 3, 1, 1, 1, 3, 0, 2, 2, 3, 2, 1, 1, 2, 3, 1, 3, 3, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 2, 1, 0, 1, 0, 3, 2, 2, 0, 2, 3, 0, 3, 0, 2, 2, 1, 1, 2, 2, 3, 0, 2, 2, 2, 3, 1, 3, 2, 1, 1, 1, 3, 1, 2, 2, 1, 3, 2, 0, 2, 2, 2, 0, 2, 2, 3, 3, 0, 1, 1, 0, 2, 0, 1, 0, 2, 2, 2, 3, 0, 3, 1, 3, 3, 0, 3, 0, 0, 0, 3, 0, 1, 0, 0, 1, 3, 3, 1, 2, 1, 0, 1, 3, 3, 3, 0, 0, 0, 1, 3, 3, 0, 2, 1, 3, 1, 0, 2, 1, 2, 3, 0, 1, 2, 0, 1, 0, 2, 0, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 0, 1, 0, 0, 2, 0, 3, 3, 1, 2, 2, 1, 1, 1, 3, 1, 0, 0, 1, 2, 1, 0, 1, 1, 3, 1, 3, 2, 1, 0, 1, 3, 3, 2, 2, 1, 0, 1, 2, 3, 3, 1, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 1, 3, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 3, 3, 3, 3, 2, 1, 1, 1, 1, 3, 3, 1, 0, 1, 0, 0, 1, 1, 3, 2, 2, 2, 0, 0, 1, 1, 0, 3, 3, 3, 2, 3, 1, 2, 1, 1, 0, 1, 1, 0, 0, 2, 0, 0, 2, 1, 1, 2, 0, 0, 3, 2, 0, 2, 3, 3, 2, 0, 3, 2, 3, 2, 0, 0, 3, 0, 2, 0, 1, 0, 3, 3, 3, 0, 1, 3, 3, 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, 1, 0, 3, 1, 1, 3, 2, 0, 0, 2, 1, 0, 1, 0, 3, 0, 1, 1, 3, 3, 0, 1, 2, 2, 3, 0, 1, 1, 1, 0 };
|
||||
|
||||
int x = 5;
|
||||
int y = 2;
|
||||
|
||||
int buffer = 0;
|
||||
int nbtiles = 400;
|
||||
while(1)
|
||||
int x = 5;
|
||||
int y = 2;
|
||||
|
||||
int buffer = 0;
|
||||
int nbtiles = 400;
|
||||
while(1)
|
||||
{
|
||||
dclear(C_WHITE);
|
||||
//draw_map_at(map,80,30,50);
|
||||
draw_map_player(map,x,y,nbtiles);
|
||||
draw_player(3,1);
|
||||
dprint(1,1,C_BLACK,"(%d;%d)",x,y);
|
||||
dprint(1,30,C_BLACK,"%d",map[x+y*level_width]);
|
||||
dupdate();
|
||||
dclear(C_WHITE);
|
||||
//draw_map_at(map,80,30,50);
|
||||
draw_map_player(map,x,y,nbtiles);
|
||||
draw_player(3,1);
|
||||
dprint(1,1,C_BLACK,"(%d;%d)",x,y);
|
||||
dprint(1,30,C_BLACK,"%d",map[x+y*level_width]);
|
||||
dupdate();
|
||||
pollevent();
|
||||
if(keydown(KEY_EXIT))
|
||||
if(keydown(KEY_EXIT))
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(keydown(KEY_RIGHT) && x+1 < level_width && !buffer) x+=1;
|
||||
if(keydown(KEY_LEFT) && x > 0 && !buffer) x-=1;
|
||||
if(keydown(KEY_UP) && y > 0 && !buffer) y-=1;
|
||||
if(keydown(KEY_DOWN) && y+1 < nbtiles/level_width && !buffer) y+=1;
|
||||
if(keydown_any(KEY_RIGHT,KEY_LEFT,KEY_UP,KEY_DOWN)) {
|
||||
buffer = 1;
|
||||
} else {
|
||||
buffer = 0;
|
||||
}
|
||||
if(keydown(KEY_LEFT) && x > 0 && !buffer) x-=1;
|
||||
if(keydown(KEY_UP) && y > 0 && !buffer) y-=1;
|
||||
if(keydown(KEY_DOWN) && y+1 < nbtiles/level_width && !buffer) y+=1;
|
||||
if(keydown_any(KEY_RIGHT,KEY_LEFT,KEY_UP,KEY_DOWN)) {
|
||||
buffer = 1;
|
||||
} else {
|
||||
buffer = 0;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -6,5 +6,5 @@
|
|||
extern bopti_image_t img_player;
|
||||
|
||||
void draw_player(int posx, int posy) {
|
||||
draw_iso(posx,posy,150,60,&img_player);
|
||||
draw_iso(posx,posy,150,60,&img_player);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue