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