feat: renamed test object to player controller

This commit is contained in:
Sara 2024-09-25 17:16:12 +02:00
parent a8024e5bfd
commit f00440ff8c
4 changed files with 63 additions and 63 deletions

View file

@ -1,5 +1,5 @@
#include "raylib.h" #include "raylib.h"
#include "test_object.h" #include "player_controller.h"
#include "camera_controller.h" #include "camera_controller.h"
#include "core/input.h" #include "core/input.h"
#include "core/camera_node.h" #include "core/camera_node.h"

View file

@ -1,43 +1,43 @@
#include "test_object.h" #include "player_controller.h"
#include "core/render.h" #include "core/render.h"
#include "utils/debug.h" #include "utils/debug.h"
#include "core/input.h" #include "core/input.h"
#include "raylib.h" #include "raylib.h"
START_REFLECT(TestObject); START_REFLECT(PlayerController);
REFLECT_TYPECLASS(TestObject, Drop); REFLECT_TYPECLASS(PlayerController, Drop);
REFLECT_TYPECLASS(TestObject, SceneNodeEntity); REFLECT_TYPECLASS(PlayerController, SceneNodeEntity);
REFLECT_TYPECLASS(TestObject, Renderable); REFLECT_TYPECLASS(PlayerController, Renderable);
END_REFLECT(TestObject); END_REFLECT(PlayerController);
impl_Drop_for(TestObject, impl_Drop_for(PlayerController,
DestroyTestObject DestroyTestObject
) )
impl_Renderable_for(TestObject, impl_Renderable_for(PlayerController,
TestObjectDraw TestObjectDraw
) )
impl_SceneNodeEntity_for(TestObject, impl_SceneNodeEntity_for(PlayerController,
TestObjectEnterTree, TestObjectEnterTree,
TestObjectExitTree, TestObjectExitTree,
TestObjectTick TestObjectTick
) )
SceneNode *CreateTestObject() { SceneNode *CreateTestObject() {
TestObject *self = new(TestObject); PlayerController *self = new(PlayerController);
self->rotation = self->fly_input = Vector2Zero(); self->rotation = self->fly_input = Vector2Zero();
self->stopped = false; self->stopped = false;
return CreateSceneNode(TestObject_as_SceneNodeEntity(self)); return CreateSceneNode(PlayerController_as_SceneNodeEntity(self));
} }
void DestroyTestObject(TestObject *self) { void DestroyTestObject(PlayerController *self) {
free(self); free(self);
} }
void TestObjectEnterTree(TestObject *self) { void TestObjectEnterTree(PlayerController *self) {
self->transform = TC_CAST(self->node->parent->entity, Transformable); self->transform = TC_CAST(self->node->parent->entity, Transformable);
AddRenderable(TestObject_as_Renderable(self)); AddRenderable(PlayerController_as_Renderable(self));
AddListener("pitch_up", ButtonInputListener(self, TestObjectUpInput)); AddListener("pitch_up", ButtonInputListener(self, TestObjectUpInput));
AddListener("pitch_down", ButtonInputListener(self, TestObjectDownInput)); AddListener("pitch_down", ButtonInputListener(self, TestObjectDownInput));
AddListener("roll_left", ButtonInputListener(self, TestObjectLeftInput)); AddListener("roll_left", ButtonInputListener(self, TestObjectLeftInput));
@ -45,14 +45,14 @@ void TestObjectEnterTree(TestObject *self) {
AddListener("stop", ButtonInputListener(self, TestObjectStopInput)); AddListener("stop", ButtonInputListener(self, TestObjectStopInput));
} }
void TestObjectExitTree(TestObject *self) { void TestObjectExitTree(PlayerController *self) {
RemoveRenderable(TestObject_as_Renderable(self)); RemoveRenderable(PlayerController_as_Renderable(self));
} }
void TestObjectDraw(TestObject *self) { void TestObjectDraw(PlayerController *self) {
} }
void TestObjectTick(TestObject *self, double delta) { void TestObjectTick(PlayerController *self, double delta) {
if(self->stopped) return; if(self->stopped) return;
Vector2 diff = Vector2Subtract(self->fly_input, self->rotation); Vector2 diff = Vector2Subtract(self->fly_input, self->rotation);
float const length = Vector2Length(diff); float const length = Vector2Length(diff);
@ -67,22 +67,22 @@ void TestObjectTick(TestObject *self, double delta) {
} }
void TestObjectLeftInput(TestObject *self, bool value) { void TestObjectLeftInput(PlayerController *self, bool value) {
self->fly_input.x += value ? -1 : +1; self->fly_input.x += value ? -1 : +1;
} }
void TestObjectRightInput(TestObject *self, bool value) { void TestObjectRightInput(PlayerController *self, bool value) {
self->fly_input.x += value ? +1 : -1; self->fly_input.x += value ? +1 : -1;
} }
void TestObjectUpInput(TestObject *self, bool value) { void TestObjectUpInput(PlayerController *self, bool value) {
self->fly_input.y += value ? -1 : +1; self->fly_input.y += value ? -1 : +1;
} }
void TestObjectDownInput(TestObject *self, bool value) { void TestObjectDownInput(PlayerController *self, bool value) {
self->fly_input.y += value ? +1 : -1; self->fly_input.y += value ? +1 : -1;
} }
void TestObjectStopInput(TestObject *self, bool value) { void TestObjectStopInput(PlayerController *self, bool value) {
self->stopped = value; self->stopped = value;
} }

39
src/player_controller.h Normal file
View file

@ -0,0 +1,39 @@
#ifndef TEST_OBJECT_H
#define TEST_OBJECT_H
#include "core/scene.h"
#include "core/scene_node_entity.h"
#include "core/transformable.h"
#include "core/renderable.h"
#include "utils/drop.h"
#include "utils/mirror.h"
// Test object created to generally test game features
typedef struct PlayerController {
SceneNode *node;
Transformable transform;
Vector2 fly_input;
Vector2 rotation;
bool stopped;
} PlayerController;
SceneNode *CreateTestObject();
void DestroyTestObject(PlayerController *self);
extern void TestObjectEnterTree(PlayerController *self);
extern void TestObjectExitTree(PlayerController *self);
extern void TestObjectDraw(PlayerController *self);
extern void TestObjectTick(PlayerController *self, double delta);
extern void TestObjectLeftInput(PlayerController *self, bool value);
extern void TestObjectRightInput(PlayerController *self, bool value);
extern void TestObjectUpInput(PlayerController *self, bool value);
extern void TestObjectDownInput(PlayerController *self, bool value);
extern void TestObjectStopInput(PlayerController *self, bool value);
DECL_REFLECT(PlayerController);
decl_typeclass_impl(SceneNodeEntity, PlayerController);
decl_typeclass_impl(Drop, PlayerController);
decl_typeclass_impl(Renderable, PlayerController);
#endif // !TEST_OBJECT_H

View file

@ -1,39 +0,0 @@
#ifndef TEST_OBJECT_H
#define TEST_OBJECT_H
#include "core/scene.h"
#include "core/scene_node_entity.h"
#include "core/transformable.h"
#include "core/renderable.h"
#include "utils/drop.h"
#include "utils/mirror.h"
// Test object created to generally test game features
typedef struct TestObject {
SceneNode *node;
Transformable transform;
Vector2 fly_input;
Vector2 rotation;
bool stopped;
} TestObject;
SceneNode *CreateTestObject();
void DestroyTestObject(TestObject *self);
extern void TestObjectEnterTree(TestObject *self);
extern void TestObjectExitTree(TestObject *self);
extern void TestObjectDraw(TestObject *self);
extern void TestObjectTick(TestObject *self, double delta);
extern void TestObjectLeftInput(TestObject *self, bool value);
extern void TestObjectRightInput(TestObject *self, bool value);
extern void TestObjectUpInput(TestObject *self, bool value);
extern void TestObjectDownInput(TestObject *self, bool value);
extern void TestObjectStopInput(TestObject *self, bool value);
DECL_REFLECT(TestObject);
decl_typeclass_impl(SceneNodeEntity, TestObject);
decl_typeclass_impl(Drop, TestObject);
decl_typeclass_impl(Renderable, TestObject);
#endif // !TEST_OBJECT_H