Render entities first pass.
This commit is contained in:
@ -12,10 +12,10 @@
|
||||
#define ENTITY_COUNT_MAX 32
|
||||
|
||||
typedef enum {
|
||||
ENTITY_DIR_NORTH = 0,
|
||||
ENTITY_DIR_SOUTH = 1,
|
||||
ENTITY_DIR_SOUTH = 0,
|
||||
ENTITY_DIR_EAST = 1,
|
||||
ENTITY_DIR_WEST = 2,
|
||||
ENTITY_DIR_EAST = 3,
|
||||
ENTITY_DIR_NORTH = 3,
|
||||
|
||||
ENTITY_DIR_UP = ENTITY_DIR_NORTH,
|
||||
ENTITY_DIR_DOWN = ENTITY_DIR_SOUTH,
|
||||
|
@ -98,47 +98,61 @@ void drawOverworldDrawEntity(const entity_t *entity) {
|
||||
|
||||
uint32_t x = (uint32_t)floorf(entity->x);
|
||||
uint32_t y = (uint32_t)floorf(entity->y);
|
||||
uint32_t row = 0;
|
||||
uint32_t col = entity->dir;
|
||||
|
||||
DrawRectangle(
|
||||
x,
|
||||
y,
|
||||
TILE_WIDTH,
|
||||
TILE_HEIGHT,
|
||||
(entity->type == ENTITY_TYPE_PLAYER) ? BLUE : YELLOW
|
||||
DrawTextureRec(
|
||||
RENDER_ENTITIES_TEXTURE,
|
||||
(Rectangle){
|
||||
col * TILE_WIDTH,
|
||||
row * TILE_HEIGHT,
|
||||
TILE_WIDTH,
|
||||
TILE_HEIGHT
|
||||
},
|
||||
(Vector2){ x, y },
|
||||
WHITE
|
||||
);
|
||||
|
||||
switch(entity->dir) {
|
||||
case ENTITY_DIR_NORTH:
|
||||
DrawTriangle(
|
||||
(Vector2){ x + TILE_WIDTH / 2, y },
|
||||
(Vector2){ x, y + TILE_HEIGHT },
|
||||
(Vector2){ x + TILE_WIDTH, y + TILE_HEIGHT },
|
||||
WHITE
|
||||
);
|
||||
break;
|
||||
case ENTITY_DIR_SOUTH:
|
||||
DrawTriangle(
|
||||
(Vector2){ x + TILE_WIDTH / 2, y + TILE_HEIGHT },
|
||||
(Vector2){ x + TILE_WIDTH, y },
|
||||
(Vector2){ x, y },
|
||||
WHITE
|
||||
);
|
||||
break;
|
||||
case ENTITY_DIR_WEST:
|
||||
DrawTriangle(
|
||||
(Vector2){ x, y + TILE_HEIGHT / 2 },
|
||||
(Vector2){ x + TILE_WIDTH, y + TILE_HEIGHT },
|
||||
(Vector2){ x + TILE_WIDTH, y },
|
||||
WHITE
|
||||
);
|
||||
break;
|
||||
case ENTITY_DIR_EAST:
|
||||
DrawTriangle(
|
||||
(Vector2){ x + TILE_WIDTH, y + TILE_HEIGHT / 2 },
|
||||
(Vector2){ x, y },
|
||||
(Vector2){ x, y + TILE_HEIGHT },
|
||||
WHITE
|
||||
);
|
||||
break;
|
||||
}
|
||||
// DrawRectangle(
|
||||
// x,
|
||||
// y,
|
||||
// TILE_WIDTH,
|
||||
// TILE_HEIGHT,
|
||||
// (entity->type == ENTITY_TYPE_PLAYER) ? BLUE : YELLOW
|
||||
// );
|
||||
|
||||
// switch(entity->dir) {
|
||||
// case ENTITY_DIR_NORTH:
|
||||
// DrawTriangle(
|
||||
// (Vector2){ x + TILE_WIDTH / 2, y },
|
||||
// (Vector2){ x, y + TILE_HEIGHT },
|
||||
// (Vector2){ x + TILE_WIDTH, y + TILE_HEIGHT },
|
||||
// WHITE
|
||||
// );
|
||||
// break;
|
||||
// case ENTITY_DIR_SOUTH:
|
||||
// DrawTriangle(
|
||||
// (Vector2){ x + TILE_WIDTH / 2, y + TILE_HEIGHT },
|
||||
// (Vector2){ x + TILE_WIDTH, y },
|
||||
// (Vector2){ x, y },
|
||||
// WHITE
|
||||
// );
|
||||
// break;
|
||||
// case ENTITY_DIR_WEST:
|
||||
// DrawTriangle(
|
||||
// (Vector2){ x, y + TILE_HEIGHT / 2 },
|
||||
// (Vector2){ x + TILE_WIDTH, y + TILE_HEIGHT },
|
||||
// (Vector2){ x + TILE_WIDTH, y },
|
||||
// WHITE
|
||||
// );
|
||||
// break;
|
||||
// case ENTITY_DIR_EAST:
|
||||
// DrawTriangle(
|
||||
// (Vector2){ x + TILE_WIDTH, y + TILE_HEIGHT / 2 },
|
||||
// (Vector2){ x, y },
|
||||
// (Vector2){ x, y + TILE_HEIGHT },
|
||||
// WHITE
|
||||
// );
|
||||
// break;
|
||||
// }
|
||||
}
|
@ -12,6 +12,7 @@
|
||||
|
||||
RenderTexture2D RENDER_SCREEN_TEXTURE;
|
||||
Texture2D RENDER_TILEMAP_TEXTURE;
|
||||
Texture2D RENDER_ENTITIES_TEXTURE;
|
||||
|
||||
void renderInit(void) {
|
||||
InitWindow(
|
||||
@ -28,6 +29,7 @@ void renderInit(void) {
|
||||
|
||||
RENDER_SCREEN_TEXTURE = LoadRenderTexture(RENDER_WIDTH, RENDER_HEIGHT);
|
||||
RENDER_TILEMAP_TEXTURE = LoadTexture("../data/tilemap.png");
|
||||
RENDER_ENTITIES_TEXTURE = LoadTexture("../data/entities.png");
|
||||
|
||||
drawOverworldInit();
|
||||
}
|
||||
|
@ -11,3 +11,4 @@
|
||||
|
||||
extern RenderTexture2D RENDER_SCREEN_TEXTURE;
|
||||
extern Texture2D RENDER_TILEMAP_TEXTURE;
|
||||
extern Texture2D RENDER_ENTITIES_TEXTURE;
|
Reference in New Issue
Block a user