3 #include "engine/asset.h"
4 #include "engine/render.h"
6 Scene* playerCharacter;
7 static Transform movementDirectionTransform;
12 movementDirectionTransform = identity();
13 rotate(&movementDirectionTransform, (Vector3D) { 0.0f, 1.0f, 0.0f }, - TAU / 8.0f);
15 playerCharacter = newScene();
16 cameraAnchor = playerCharacter;
17 playerCharacter->solid = importSolid("assets/playercharacter.3ds");
20 void spawnPlayer(Transform transform) {
21 playerCharacter->transform = transform;
22 reparentScene(playerCharacter, currentScene);
25 void playerMovementInput(float x, float y) {
26 if (!playerCharacter) {
30 Vector3D direction = (Vector3D) { x, 0.0f, -y };
31 direction = normalized(
32 applyTransform(movementDirectionTransform, direction));
33 float velocity = 1.0f;
34 Vector3D movement = { direction.x * velocity,
35 direction.y * velocity,
36 direction.z * velocity };
38 translate(&(playerCharacter->transform), movement);