The game is now at 1x scale

This commit is contained in:
KikooDX 2020-02-15 12:34:57 +01:00
parent 2453b5c039
commit 54270bf1d3
5 changed files with 43 additions and 42 deletions

Binary file not shown.

View File

@ -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;
}

View File

@ -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;

View File

@ -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);

View File

@ -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;
}