Added basic player movement.

This commit is contained in:
2021-04-23 08:17:42 +10:00
parent f7c1380f06
commit e323cf2721
23 changed files with 428 additions and 14 deletions

View File

@ -7,17 +7,50 @@
#pragma once
#include "../../libs.h"
#include "../../display/spritebatch.h"
/** Entity ID Definitions */
#define ENTITY_TYPE_NULL 0x00
#define ENTITY_TYPE_PLAYER 0x01
/** Max count of entities in the world */
#define ENTITY_COUNT 64
/** Count of different types of entities */
#define ENTITY_TYPE_COUNT ENTITY_TYPE_PLAYER + 1
/** Unique Entity ID */
typedef uint8_t entityid_t;
/** Unique Entity ID for the Entity Type */
typedef uint8_t entitytypeid_t;
/** Entity Definition */
typedef struct {
entitytypeid_t type;
int32_t gridX, gridY, gridZ;
int32_t oldGridX, oldGridY, oldGridZ;
float positionX, positionY, positionZ;
} entity_t;
/** Definition for an entity type */
typedef struct {
entity_t entities[ENTITY_COUNT]
void (*entityInit)(entityid_t entityId, entity_t *entity);
void (*entityUpdate)(entityid_t entityId, entity_t *entity);
void (*entityDispose)(entityid_t entityId, entity_t *entity);
} entitytype_t;
/** Entity State Management */
typedef struct {
/** Entities within the state */
entity_t entities[ENTITY_COUNT];
/** Sprite Batch in the state */
spritebatch_t *spriteBatch;
} entitystate_t;
extern entitystate_t ENTITY_STATE;
/** Global Entity State */
extern entitystate_t ENTITY_STATE;
/** Global Entity Type Definitions */
extern entitytype_t ENTITY_TYPES[ENTITY_TYPE_COUNT];