Update main game render
parent
639aed69db
commit
979533092e
5
main.c
5
main.c
|
@ -63,7 +63,10 @@ int main(void)
|
||||||
level_scene.data.tile_sprites[SPIKES + TILE_90CWROT] = get_sprite(&engine.assets, "l_spikes");
|
level_scene.data.tile_sprites[SPIKES + TILE_90CWROT] = get_sprite(&engine.assets, "l_spikes");
|
||||||
level_scene.data.tile_sprites[SPIKES + TILE_90CCWROT] = get_sprite(&engine.assets, "r_spikes");
|
level_scene.data.tile_sprites[SPIKES + TILE_90CCWROT] = get_sprite(&engine.assets, "r_spikes");
|
||||||
level_scene.data.tile_sprites[SPIKES + TILE_180ROT] = get_sprite(&engine.assets, "u_spikes");
|
level_scene.data.tile_sprites[SPIKES + TILE_180ROT] = get_sprite(&engine.assets, "u_spikes");
|
||||||
LevelPack_t* pack = get_level_pack(&engine.assets, "TestLevels");
|
Texture2D* tex = get_texture(&engine.assets, "bg_tex");
|
||||||
|
SetTextureWrap(*tex, TEXTURE_WRAP_REPEAT);
|
||||||
|
|
||||||
|
LevelPack_t* pack = get_level_pack(&engine.assets, "DefLevels");
|
||||||
if (pack != NULL)
|
if (pack != NULL)
|
||||||
{
|
{
|
||||||
level_scene.data.level_pack = pack;
|
level_scene.data.level_pack = pack;
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
#define DEFAULT_MAP_HEIGHT 32
|
#define DEFAULT_MAP_HEIGHT 32
|
||||||
#define VIEWABLE_EDITOR_MAP_WIDTH 32
|
#define VIEWABLE_EDITOR_MAP_WIDTH 32
|
||||||
#define VIEWABLE_EDITOR_MAP_HEIGHT 16
|
#define VIEWABLE_EDITOR_MAP_HEIGHT 16
|
||||||
#define VIEWABLE_MAP_WIDTH 21
|
#define VIEWABLE_MAP_WIDTH 25
|
||||||
#define VIEWABLE_MAP_HEIGHT 15
|
#define VIEWABLE_MAP_HEIGHT 14
|
||||||
#else
|
#else
|
||||||
#define TILE_SIZE 16
|
#define TILE_SIZE 16
|
||||||
#define DEFAULT_MAP_WIDTH 64
|
#define DEFAULT_MAP_WIDTH 64
|
||||||
|
@ -23,9 +23,9 @@
|
||||||
#define MOVE_ACCEL 1300
|
#define MOVE_ACCEL 1300
|
||||||
|
|
||||||
#ifndef TILE16_SIZE
|
#ifndef TILE16_SIZE
|
||||||
#define PLAYER_WIDTH 28
|
#define PLAYER_WIDTH 22
|
||||||
#define PLAYER_HEIGHT 42
|
#define PLAYER_HEIGHT 42
|
||||||
#define PLAYER_C_WIDTH 28
|
#define PLAYER_C_WIDTH 22
|
||||||
#define PLAYER_C_HEIGHT 26
|
#define PLAYER_C_HEIGHT 26
|
||||||
#else
|
#else
|
||||||
#define PLAYER_WIDTH 14
|
#define PLAYER_WIDTH 14
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
#define GROUND_X_FRICTION 6.1
|
#define GROUND_X_FRICTION 6.1
|
||||||
#define GROUND_Y_FRICTION 1.0
|
#define GROUND_Y_FRICTION 1.0
|
||||||
|
|
||||||
#define ARROW_SPEED 350
|
#define ARROW_SPEED 400
|
||||||
|
|
||||||
#define MAX_WATER_LEVEL 4
|
#define MAX_WATER_LEVEL 4
|
||||||
#define WATER_BBOX_STEP (TILE_SIZE / MAX_WATER_LEVEL)
|
#define WATER_BBOX_STEP (TILE_SIZE / MAX_WATER_LEVEL)
|
||||||
|
|
|
@ -301,9 +301,10 @@ static void render_regular_game_scene(Scene_t* scene)
|
||||||
|
|
||||||
if (tilemap.tiles[i].tile_type != LADDER)
|
if (tilemap.tiles[i].tile_type != LADDER)
|
||||||
{
|
{
|
||||||
if (data->tile_sprites[tilemap.tiles[i].tile_type] != NULL)
|
uint8_t tile_sprite_idx = tilemap.tiles[i].tile_type + tilemap.tiles[i].rotation;
|
||||||
|
if (data->tile_sprites[tile_sprite_idx] != NULL)
|
||||||
{
|
{
|
||||||
draw_sprite(data->tile_sprites[tilemap.tiles[i].tile_type], 0, (Vector2){x,y}, 0.0f, false);
|
draw_sprite(data->tile_sprites[tile_sprite_idx], 0, (Vector2){x,y}, 0.0f, false);
|
||||||
}
|
}
|
||||||
else if (tilemap.tiles[i].tile_type == SOLID_TILE)
|
else if (tilemap.tiles[i].tile_type == SOLID_TILE)
|
||||||
{
|
{
|
||||||
|
@ -443,8 +444,6 @@ void init_game_scene(LevelScene_t* scene)
|
||||||
update_entity_manager(&scene->scene.ent_manager);
|
update_entity_manager(&scene->scene.ent_manager);
|
||||||
|
|
||||||
// Set up textures
|
// Set up textures
|
||||||
Texture2D* tex = get_texture(&scene->scene.engine->assets, "bg_tex");
|
|
||||||
SetTextureWrap(*tex, TEXTURE_WRAP_REPEAT);
|
|
||||||
scene->data.solid_tile_sprites = get_sprite(&scene->scene.engine->assets, "stile0");
|
scene->data.solid_tile_sprites = get_sprite(&scene->scene.engine->assets, "stile0");
|
||||||
|
|
||||||
sc_array_add(&scene->scene.systems, &update_tilemap_system);
|
sc_array_add(&scene->scene.systems, &update_tilemap_system);
|
||||||
|
|
|
@ -75,10 +75,10 @@ bool load_level_tilemap(LevelScene_t* scene, unsigned int level_num)
|
||||||
|
|
||||||
if (lvl_map.tiles[i].tile_type == 1)
|
if (lvl_map.tiles[i].tile_type == 1)
|
||||||
{
|
{
|
||||||
change_a_tile(&scene->data.tilemap, i, SOLID_TILE);
|
change_a_tile(&scene->data.tilemap, i, SOLID_TILE);
|
||||||
}
|
}
|
||||||
|
|
||||||
scene->data.tilemap.tiles[i].water_level = lvl_map.tiles[i].water;
|
scene->data.tilemap.tiles[i].water_level = lvl_map.tiles[i].water;
|
||||||
}
|
}
|
||||||
// Two pass
|
// Two pass
|
||||||
for (size_t i = 0; i < scene->data.tilemap.n_tiles;i++)
|
for (size_t i = 0; i < scene->data.tilemap.n_tiles;i++)
|
||||||
|
@ -139,6 +139,15 @@ bool load_level_tilemap(LevelScene_t* scene, unsigned int level_num)
|
||||||
ent->spawn_pos = ent->position;
|
ent->spawn_pos = ent->position;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 23:
|
||||||
|
{
|
||||||
|
Entity_t* ent = create_chest(&scene->scene.ent_manager);
|
||||||
|
ent->position.x = (i % scene->data.tilemap.width) * scene->data.tilemap.tile_size;
|
||||||
|
ent->position.y = (i / scene->data.tilemap.width) * scene->data.tilemap.tile_size;
|
||||||
|
CTransform_t* p_ctransform = get_component(ent, CTRANSFORM_COMP_T);
|
||||||
|
p_ctransform->active = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue