From ed1704f9a110c9fa909dccb3169bf388f48279e4 Mon Sep 17 00:00:00 2001 From: nathansmithsmith <thenathansmithsmith@gmail.com> Date: Sun, 16 Jul 2023 18:57:08 -0600 Subject: Chatgpt saved my ass again --- src/entities/soldato.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/entities/soldato.c') diff --git a/src/entities/soldato.c b/src/entities/soldato.c index da8df84..f19faa7 100644 --- a/src/entities/soldato.c +++ b/src/entities/soldato.c @@ -3,14 +3,27 @@ void initSoldato(Entity * entity, Game * game) { entity->model = &game->assets.models[SOLDATO_ASSET]; - entity->velocity.angularVelocity = (AxisAngle){(Vector3){1.0, 1.0, 1.0}, 1.0}; } void closeSoldato(Entity * entity) { } void updateSoldato(Game * game, Entity * entity) { - entityUpdateRotation(entity); + Entity * player = getEntityFromWorld(game->world, 0); + + // Get direction. + Vector3 direction = Vector3Subtract(entity->position, player->position); + direction = Vector3Normalize(direction); + + // Get look at and rotation. + Matrix matrix = MatrixLookAt(Vector3Zero(), direction, (Vector3){0, 1, 0}); + Quaternion rotation = QuaternionFromMatrix(matrix); + rotation = QuaternionInvert(rotation); + + entity->rotation = rotation; + + entity->velocity.velocity = Vector3Scale(direction, -10.0); + entityUpdatePosition(entity); } void drawSoldato(Game * game, Entity * entity) { -- cgit v1.2.3