The game is now at 1x scale
This commit is contained in:
parent
2453b5c039
commit
54270bf1d3
BIN
platform.g3a
BIN
platform.g3a
Binary file not shown.
|
@ -1,16 +1,16 @@
|
|||
#define PLAYER_SIDES 5
|
||||
#define PLAYER_SIDES 11
|
||||
#define LEVEL_WIDTH 28
|
||||
|
||||
char collide(int x, int y, char level[], char tile)
|
||||
{
|
||||
if ((level[(int)(x/8) + (int)(y/8) * LEVEL_WIDTH] == tile) ||
|
||||
(level[(int)(x/8) + (int)((y+PLAYER_SIDES)/8) * LEVEL_WIDTH] == tile) ||
|
||||
(level[(int)((x+PLAYER_SIDES)/8) + (int)((y+PLAYER_SIDES)/8) * LEVEL_WIDTH] == tile) ||
|
||||
(level[(int)((x+PLAYER_SIDES)/8) + (int)(y/8) * LEVEL_WIDTH] == tile) /*||
|
||||
(level[(int)(x/8) + (int)((y+PLAYER_SIDES/2)/8) * LEVEL_WIDTH] == tile) ||
|
||||
(level[(int)((x+PLAYER_SIDES/2)/8) + (int)(y/8) * LEVEL_WIDTH] == tile) ||
|
||||
(level[(int)((x+PLAYER_SIDES/2)/8) + (int)((y+PLAYER_SIDES)/8) * LEVEL_WIDTH] == tile) ||
|
||||
(level[(int)((x+PLAYER_SIDES)/8) + (int)((y+PLAYER_SIDES/2)/8) * LEVEL_WIDTH] == tile)*/) return 1;
|
||||
if ((level[(int)(x/16) + (int)(y/16) * LEVEL_WIDTH] == tile) ||
|
||||
(level[(int)(x/16) + (int)((y+PLAYER_SIDES)/16) * LEVEL_WIDTH] == tile) ||
|
||||
(level[(int)((x+PLAYER_SIDES)/16) + (int)((y+PLAYER_SIDES)/16) * LEVEL_WIDTH] == tile) ||
|
||||
(level[(int)((x+PLAYER_SIDES)/16) + (int)(y/16) * LEVEL_WIDTH] == tile) /*||
|
||||
(level[(int)(x/16) + (int)((y+PLAYER_SIDES/2)/16) * LEVEL_WIDTH] == tile) ||
|
||||
(level[(int)((x+PLAYER_SIDES/2)/16) + (int)(y/16) * LEVEL_WIDTH] == tile) ||
|
||||
(level[(int)((x+PLAYER_SIDES/2)/16) + (int)((y+PLAYER_SIDES)/16) * LEVEL_WIDTH] == tile) ||
|
||||
(level[(int)((x+PLAYER_SIDES)/16) + (int)((y+PLAYER_SIDES/2)/16) * LEVEL_WIDTH] == tile)*/) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
28
src/draw.c
28
src/draw.c
|
@ -1,6 +1,6 @@
|
|||
#include <gint/display.h>
|
||||
|
||||
#define PLAYER_SIDES 5
|
||||
#define PLAYER_SIDES 11
|
||||
#define BG_COLOR 0
|
||||
#define LEVEL_WIDTH 28
|
||||
#define DRAW_OFFSET_Y -24
|
||||
|
@ -12,10 +12,10 @@ void draw_player(int old_x, int old_y, int x, int y)
|
|||
{
|
||||
if (old_x != x || old_y != y)
|
||||
{
|
||||
drect(old_x * 2 + DRAW_OFFSET_X, old_y * 2 + DRAW_OFFSET_Y,
|
||||
(old_x + PLAYER_SIDES) * 2 + 1 + DRAW_OFFSET_X,
|
||||
(old_y + PLAYER_SIDES) * 2 + 1 + DRAW_OFFSET_Y, BG_COLOR);
|
||||
dimage(x * 2 + DRAW_OFFSET_X, y * 2 + DRAW_OFFSET_Y, &img_player);
|
||||
drect(old_x + DRAW_OFFSET_X, old_y + DRAW_OFFSET_Y,
|
||||
(old_x + PLAYER_SIDES) + DRAW_OFFSET_X,
|
||||
(old_y + PLAYER_SIDES) + DRAW_OFFSET_Y, BG_COLOR);
|
||||
dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_player);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -34,24 +34,24 @@ void draw_level(char level[], char upgrades[])
|
|||
switch (level[i])
|
||||
{
|
||||
case '0':
|
||||
dimage(x * 2 + DRAW_OFFSET_X, y * 2 + DRAW_OFFSET_Y, &img_ground);
|
||||
dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_ground);
|
||||
break;
|
||||
case 'v':
|
||||
dimage(x * 2 + DRAW_OFFSET_X, y * 2 + DRAW_OFFSET_Y, &img_spike);
|
||||
dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_spike);
|
||||
break;
|
||||
case '^':
|
||||
dimage(x * 2 + DRAW_OFFSET_X, y * 2 + DRAW_OFFSET_Y, &img_elevator);
|
||||
dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_elevator);
|
||||
break;
|
||||
case 'j':
|
||||
if (!upgrades[0])
|
||||
dimage(x*2 + DRAW_OFFSET_X, y*2 + DRAW_OFFSET_Y, &img_jitem);
|
||||
dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_jitem);
|
||||
else level[i] = '.';
|
||||
}
|
||||
x += 8;
|
||||
if (x == 8*LEVEL_WIDTH)
|
||||
x += 16;
|
||||
if (x == 16*LEVEL_WIDTH)
|
||||
{
|
||||
x = 0;
|
||||
y += 8;
|
||||
y += 16;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
@ -59,8 +59,8 @@ void draw_level(char level[], char upgrades[])
|
|||
|
||||
void erase_tile(int x, int y, char level[])
|
||||
{
|
||||
x = (int)(x/8);
|
||||
y = (int)(y/8);
|
||||
x = (int)(x/16);
|
||||
y = (int)(y/16);
|
||||
level[x + y * 28] = '.';
|
||||
x *= 16;
|
||||
y *= 16;
|
||||
|
|
35
src/main.c
35
src/main.c
|
@ -6,13 +6,13 @@
|
|||
#include "levels.h"
|
||||
#include "player.h"
|
||||
|
||||
#define WALK_SPD 1
|
||||
#define MIN_VSPD -6.0
|
||||
#define MAX_VSPD 6
|
||||
#define JUMP_SPD -3.2
|
||||
#define GRAV 0.2
|
||||
#define WALK_SPD 2
|
||||
#define MIN_VSPD -12.0
|
||||
#define MAX_VSPD 12
|
||||
#define JUMP_SPD -6.4
|
||||
#define GRAV 0.4
|
||||
#define JUMP_SCALE 12
|
||||
#define JUMP_REDUCTION -0.1
|
||||
#define JUMP_REDUCTION -0.2
|
||||
#define UG_CAN_JUMP upgrades[0]
|
||||
|
||||
void dupdate(); //gint function
|
||||
|
@ -44,8 +44,8 @@ int main(void)
|
|||
int on_ground = 6; //remember if player is on solid
|
||||
int player_x = 0;
|
||||
int player_y = 0;
|
||||
int start_x = 18*8 + 1;
|
||||
int start_y = 9*8 + 2;
|
||||
int start_x = 18*16 + 2;
|
||||
int start_y = 9*16 + 4;
|
||||
int old_x, old_y;
|
||||
char spawn_buffer = 0;
|
||||
set_level(level_id, level);
|
||||
|
@ -77,6 +77,7 @@ int main(void)
|
|||
if (vspd >= 0 && collide_solid(player_x, player_y + 1, level))
|
||||
{
|
||||
on_ground = 6;
|
||||
vspd = 0;
|
||||
if (spawn_buffer)
|
||||
{
|
||||
spawn_buffer = 0;
|
||||
|
@ -106,7 +107,7 @@ int main(void)
|
|||
if ((collide(player_x - 1, player_y, level, '^') ||
|
||||
collide(player_x + 1, player_y, level, '^')) && vspd > MIN_VSPD)
|
||||
{
|
||||
if (vspd > -1)
|
||||
if (vspd > -2)
|
||||
{
|
||||
vspd -= GRAV;
|
||||
}
|
||||
|
@ -141,37 +142,37 @@ int main(void)
|
|||
vspd = 0;
|
||||
}
|
||||
//borders collision
|
||||
if (player_x <= 11)
|
||||
if (player_x <= 22)
|
||||
{
|
||||
level_id -= 1;
|
||||
player_x = 207;
|
||||
player_x = 414;
|
||||
set_start_pos(&start_x, &start_y, player_x, player_y);
|
||||
set_level(level_id, level);
|
||||
draw_level(level, upgrades);
|
||||
reset_old_pos(&old_x, &old_y);
|
||||
}
|
||||
else if (player_x >= 208)
|
||||
else if (player_x >= 416)
|
||||
{
|
||||
level_id += 1;
|
||||
player_x = 12;
|
||||
player_x = 24;
|
||||
set_start_pos(&start_x, &start_y, player_x, player_y);
|
||||
set_level(level_id, level);
|
||||
draw_level(level, upgrades);
|
||||
reset_old_pos(&old_x, &old_y);
|
||||
}
|
||||
else if (player_y <= 4)
|
||||
else if (player_y <= 8)
|
||||
{
|
||||
level_id -= 100;
|
||||
player_y = 123;
|
||||
player_y = 246;
|
||||
spawn_buffer = 1;
|
||||
set_level(level_id, level);
|
||||
draw_level(level, upgrades);
|
||||
reset_old_pos(&old_x, &old_y);
|
||||
}
|
||||
else if (player_y >= 124)
|
||||
else if (player_y >= 248)
|
||||
{
|
||||
level_id += 100;
|
||||
player_y = 5;
|
||||
player_y = 10;
|
||||
set_start_pos(&start_x, &start_y, player_x, player_y);
|
||||
set_level(level_id, level);
|
||||
draw_level(level, upgrades);
|
||||
|
|
|
@ -25,6 +25,6 @@ void set_start_pos(int *start_x, int *start_y, int x, int y)
|
|||
|
||||
void reset_old_pos(int *old_x, int *old_y)
|
||||
{
|
||||
*old_x = -8;
|
||||
*old_y = -8;
|
||||
*old_x = -16;
|
||||
*old_y = -16;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue