1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
struct Vect2F{
Vect2F(float x, float y):x{x},y{y}{
}
float x;
float y;
};
template <typename T>
struct ComponentBase{
ComponentBase(EntityId entityId):entityId{entityId}{
}
EntityId entityId;
};
struct RigidBody : ComponentBase<RigidBody>{
RigidBody(EntityId entityId, float mass, float gravity, Vect2F const & force,
Vect2F const & velocity, Vect2F drag):
ComponentBase<RigidBody>(entityId), mass{mass}, gravityScale{gravity},
force{force}, velocity{velocity}, drag{drag}{
}
float mass;
float gravityScale;
Vect2F force;
Vect2F velocity;
Vect2F drag;
};
struct Transform : ComponentBase<Transform>{
Transform(EntityId entityId, Vect2F const & position, Vect2F const & scale,
float rotation):
ComponentBase<Transform>(entityId), position{position}, scale{scale},
rotation{rotation}{
}
Vect2F position;
Vect2F scale;
float rotation;
};
struct Sprite : ComponentBase<Sprite>{
Sprite(EntityId entityId, EntityId spriteId,
int x, int y, int width, int height):
ComponentBase<Sprite>{entityId},
spriteId{spriteId}, x{x}, y{y}, width{width},height{height}{
}
size_t spriteId;
int x;
int y;
int width;
int height;
}; |
Partager