implemented basic player struct with impl for behaviour physics and transformable
This commit is contained in:
parent
9c0c354fcd
commit
c136bc1494
33
src/player.c
Normal file
33
src/player.c
Normal file
|
@ -0,0 +1,33 @@
|
|||
#include "player.h"
|
||||
|
||||
void player_spawn(Player* self, Vector at) {
|
||||
self->transform.position = at;
|
||||
}
|
||||
|
||||
void player_start(Player* self) {
|
||||
self->transform = IdentityTransform;
|
||||
}
|
||||
|
||||
Transform* player_get_transform(Player* self) {
|
||||
return &self->transform;
|
||||
}
|
||||
|
||||
RigidBody* player_get_rigidbody(Player* self) {
|
||||
return self->rigidbody;
|
||||
}
|
||||
|
||||
Shape* player_get_shape(Player* self) {
|
||||
return self->shape;
|
||||
}
|
||||
|
||||
Vector* player_get_position(Player* self) {
|
||||
return &self->transform.position;
|
||||
}
|
||||
|
||||
Vector* player_get_scale(Player* self) {
|
||||
return &self->transform.scale;
|
||||
}
|
||||
|
||||
float* player_get_rotation(Player* self) {
|
||||
return &self->transform.rotation;
|
||||
}
|
45
src/player.h
Normal file
45
src/player.h
Normal file
|
@ -0,0 +1,45 @@
|
|||
#ifndef _fencer_player_h
|
||||
#define _fencer_player_h
|
||||
|
||||
#include "physics_entity.h"
|
||||
#include "update_entity.h"
|
||||
#include "transformable.h"
|
||||
#include "sprite.h"
|
||||
|
||||
typedef struct Player {
|
||||
Transform transform;
|
||||
RigidBody* rigidbody;
|
||||
Shape* shape;
|
||||
|
||||
Sprite* sprite;
|
||||
} Player;
|
||||
|
||||
extern void player_spawn(Player* self, Vector at);
|
||||
extern void player_start(Player* self);
|
||||
extern void player_update(Player* self, float dt);
|
||||
|
||||
extern Transform* player_get_transform(Player* self);
|
||||
extern RigidBody* player_get_rigidbody(Player* self);
|
||||
extern Shape* player_get_shape(Player* self);
|
||||
|
||||
extern Vector* player_get_position(Player* self);
|
||||
extern Vector* player_get_scale(Player* self);
|
||||
extern float* player_get_rotation(Player* self);
|
||||
|
||||
impl_Transformable_for(Player,
|
||||
player_get_transform,
|
||||
player_get_position,
|
||||
player_get_scale,
|
||||
player_get_rotation
|
||||
)
|
||||
impl_PhysicsEntity_for(Player,
|
||||
player_get_rigidbody,
|
||||
player_get_shape
|
||||
)
|
||||
impl_BehaviourEntity_for(Player,
|
||||
player_start,
|
||||
player_update,
|
||||
player_spawn
|
||||
)
|
||||
|
||||
#endif // !_fencer_player_h
|
Loading…
Reference in a new issue