debugging onfloor()

This commit is contained in:
2021-02-21 17:51:49 +01:00
parent d820d46f13
commit 6546dca6e4
9 changed files with 40 additions and 27 deletions

View File

@@ -48,12 +48,12 @@ const Uint16 GAME_WINDOW_WIDTH = 320;
const Uint16 GAME_WINDOW_HEIGHT = 234;
const Uint8 TEST_ROOM = 118; // 161
const Uint8 STARTING_ROOM = 25;
const Uint8 STARTING_ROOM = 2;
const Uint8 STARTING_PLAYER_TILE_X = 5;
const Uint8 STARTING_PLAYER_TILE_Y = 11;
const Uint8 ENEMY_HITBOX_REDUCTION = 4;
const Uint8 COOLDOWN_TIME = 50;
const Uint8 GRAVITY = 1;
const Uint8 GRAVITY = 0;
const Uint8 MAX_SPEED_Y = 5;
const Uint8 BASE_SPEED = 1;
const Uint8 MAX_SPEED = 8;

View File

@@ -17,6 +17,7 @@
JA_DeleteMusic(a); \
a = nullptr
Uint8 _GRAVITY = 0;
void allocatePointers()
{
// Textures
@@ -855,32 +856,32 @@ void EndPlayer()
void IniHud()
{
loadTextureFromFile(hud.sprite, FILE_HUD.c_str(), renderer);
hud.src_rect.x = 0;
hud.src_rect.x = 0; // Origen de la textura para el marcador
hud.src_rect.y = 0;
hud.src_rect.w = 320;
hud.src_rect.h = 16;
hud.dst_rect.x = 0;
hud.dst_rect.x = 0; // Donde se pinta el marcador
hud.dst_rect.y = 224;
hud.dst_rect.w = 320;
hud.dst_rect.h = 16;
hud.num_src_rect.x = 0;
hud.num_src_rect.x = 0; // Coordenada al primer numero pequeño
hud.num_src_rect.y = 16;
hud.num_src_rect.w = 5;
hud.num_src_rect.h = 5;
hud.num_dst_rect.x = 0;
hud.num_dst_rect.x = 0; // Donde se pinta el numero pequeño
hud.num_dst_rect.y = 16;
hud.num_dst_rect.w = 5;
hud.num_dst_rect.h = 5;
hud.bignum_src_rect.x = 0;
hud.bignum_src_rect.x = 0; // Coordenada al primer numero grande
hud.bignum_src_rect.y = 21;
hud.bignum_src_rect.w = 7;
hud.bignum_src_rect.h = 7;
hud.bignum_dst_rect.x = 0;
hud.bignum_dst_rect.x = 0; // Donde se pinta el numero grande
hud.bignum_dst_rect.y = 21;
hud.bignum_dst_rect.w = 7;
hud.bignum_dst_rect.h = 7;
@@ -948,25 +949,16 @@ void KillPlayer()
bool OnFloor()
{
Uint8 tile_on_right_foot;
Uint8 tile_on_left_foot;
Uint8 tile_under_right_foot;
Uint8 tile_under_left_foot;
Uint8 tile_under_left_foot = ReadMapTile((player.dst_rect.x + 3) / MAP_TILE_WIDTH, (player.dst_rect.y + player.dst_rect.h) / MAP_TILE_HEIGHT);
Uint8 tile_under_right_foot = ReadMapTile((player.dst_rect.x + player.dst_rect.w - 4) / MAP_TILE_WIDTH, (player.dst_rect.y + player.dst_rect.h) / MAP_TILE_HEIGHT);
bool i_am_above_platform;
bool i_am_above_travesable;
bool i_am_on_background;
bool i_am_above_platform = ((tile_under_left_foot = TILE_PLATFORM) || (tile_under_right_foot = TILE_PLATFORM));
bool i_am_above_travesable = ((tile_under_left_foot = TILE_TRAVESABLE_PLATFORM) || (tile_under_right_foot = TILE_TRAVESABLE_PLATFORM));
tile_under_left_foot = ReadMapTile((player.dst_rect.x + 3) / MAP_TILE_WIDTH, (player.dst_rect.y + player.dst_rect.h) / MAP_TILE_HEIGHT);
tile_under_right_foot = ReadMapTile((player.dst_rect.x + player.dst_rect.w - 4) / MAP_TILE_WIDTH, (player.dst_rect.y + player.dst_rect.h) / MAP_TILE_HEIGHT);
Uint8 tile_on_left_foot = ReadMapTile((player.dst_rect.x + 3) / MAP_TILE_WIDTH, (player.dst_rect.y + player.dst_rect.h - 1) / MAP_TILE_HEIGHT);
Uint8 tile_on_right_foot = ReadMapTile((player.dst_rect.x + player.dst_rect.w - 4) / MAP_TILE_WIDTH, (player.dst_rect.y + player.dst_rect.h - 1) / MAP_TILE_HEIGHT);
i_am_above_platform = ((tile_under_left_foot = TILE_PLATFORM) || (tile_under_right_foot = TILE_PLATFORM));
i_am_above_travesable = ((tile_under_left_foot = TILE_TRAVESABLE_PLATFORM) || (tile_under_right_foot = TILE_TRAVESABLE_PLATFORM));
tile_on_left_foot = ReadMapTile((player.dst_rect.x + 3) / MAP_TILE_WIDTH, (player.dst_rect.y + player.dst_rect.h - 1) / MAP_TILE_HEIGHT);
tile_on_right_foot = ReadMapTile((player.dst_rect.x + player.dst_rect.w - 4) / MAP_TILE_WIDTH, (player.dst_rect.y + player.dst_rect.h - 1) / MAP_TILE_HEIGHT);
i_am_on_background = ((tile_on_left_foot = TILE_BACKGROUND) && (tile_on_right_foot = TILE_BACKGROUND));
bool i_am_on_background = ((tile_on_left_foot = TILE_BACKGROUND) && (tile_on_right_foot = TILE_BACKGROUND));
if (((i_am_above_platform) || (i_am_above_travesable)) && (i_am_on_background))
return true;
@@ -1440,7 +1432,7 @@ void ApplyGravity()
else
{
// Si no toca piso aleshores s'incrementa la velocitat vertical
player.speed_y = player.speed_y + GRAVITY;
player.speed_y = player.speed_y + _GRAVITY;
// La velocitat no pot ser mai superior a la altura d'un tile del mapa, per a que no els atravesse
//player.speed_y = std::max(std::min(player.speed_y, MAX_SPEED_Y), -(MAX_SPEED_Y));
@@ -1521,27 +1513,33 @@ void DrawHud()
if (prog.debug)
{
// Pinta el valor x,y del jugador
// Centena de X
hud.num_src_rect.x = (player.dst_rect.x / 100) * hud.num_src_rect.w;
hud.num_dst_rect.y = 1;
hud.num_dst_rect.x = 1;
DrawSprite(hud.sprite, hud.num_src_rect, hud.num_dst_rect);
// Decena de X
hud.num_src_rect.x = ((player.dst_rect.x % 100) / 10) * hud.num_src_rect.w;
hud.num_dst_rect.x = 5;
DrawSprite(hud.sprite, hud.num_src_rect, hud.num_dst_rect);
// Unidad de X
hud.num_src_rect.x = (player.dst_rect.x % 10) * hud.num_src_rect.w;
hud.num_dst_rect.x = 9;
DrawSprite(hud.sprite, hud.num_src_rect, hud.num_dst_rect);
// Centena de Y
hud.num_src_rect.x = (player.dst_rect.y / 100) * hud.num_src_rect.w;
hud.num_dst_rect.x = 17;
DrawSprite(hud.sprite, hud.num_src_rect, hud.num_dst_rect);
// Decena de Y
hud.num_src_rect.x = ((player.dst_rect.y % 100) / 10) * hud.num_src_rect.w;
hud.num_dst_rect.x = 21;
DrawSprite(hud.sprite, hud.num_src_rect, hud.num_dst_rect);
// Unidad de Y
hud.num_src_rect.x = (player.dst_rect.y % 10) * hud.num_src_rect.w;
hud.num_dst_rect.x = 25;
DrawSprite(hud.sprite, hud.num_src_rect, hud.num_dst_rect);
@@ -1555,24 +1553,29 @@ void DrawHud()
hud.num_dst_rect.x = 33;
DrawSprite(hud.sprite, hud.num_src_rect, hud.num_dst_rect);
// tile_under_left_foot
hud.num_src_rect.x = (ReadMapTile((player.dst_rect.x + 3) / MAP_TILE_WIDTH, (player.dst_rect.y + player.dst_rect.h) / MAP_TILE_HEIGHT)) * hud.num_src_rect.w;
hud.num_dst_rect.x = 37;
DrawSprite(hud.sprite, hud.num_src_rect, hud.num_dst_rect);
//tile_under_right_foot
hud.num_src_rect.x = (ReadMapTile((player.dst_rect.x + player.dst_rect.w - 4) / MAP_TILE_WIDTH, (player.dst_rect.y + player.dst_rect.h) / MAP_TILE_HEIGHT)) * hud.num_src_rect.w;
hud.num_dst_rect.x = 41;
DrawSprite(hud.sprite, hud.num_src_rect, hud.num_dst_rect);
// Pinta el numero d'habitaci<EFBFBD>
// Pinta el numero de habitación
// Centena
hud.num_src_rect.x = (map.room / 100) * hud.num_src_rect.w;
hud.num_dst_rect.y = 1;
hud.num_dst_rect.x = 49;
DrawSprite(hud.sprite, hud.num_src_rect, hud.num_dst_rect);
// Decena
hud.num_src_rect.x = ((map.room % 100) / 10) * hud.num_src_rect.w;
hud.num_dst_rect.x = 53;
DrawSprite(hud.sprite, hud.num_src_rect, hud.num_dst_rect);
// Unidad
hud.num_src_rect.x = (map.room % 10) * hud.num_src_rect.w;
hud.num_dst_rect.x = 57;
DrawSprite(hud.sprite, hud.num_src_rect, hud.num_dst_rect);
@@ -1799,7 +1802,7 @@ void IniProgram()
event = new SDL_Event();
prog.music_enabled = true;
prog.filter = true;
prog.filter = false;
SetProgSection(SECTION_MENU);
prog.debug = true;
@@ -1920,6 +1923,8 @@ int main(int argc, char *args[])
case SDL_SCANCODE_G:
player.lifes = 255;
_GRAVITY++;
_GRAVITY %= 2;
break;
case SDL_SCANCODE_M:
@@ -1935,6 +1940,14 @@ int main(int argc, char *args[])
LoadRoom(TEST_ROOM);
break;
case SDL_SCANCODE_Z:
player.dst_rect.y--;
break;
case SDL_SCANCODE_X:
player.dst_rect.y++;
break;
case SDL_SCANCODE_F1:
prog.debug = !prog.debug;
break;