1

I have this game where i spawn enemies from all the screen sides (image for reference); I made a function for the enemy to move towards the player that looks like this:

The problem is, that the enemy's rotation is static for all enemy spawns (Z:0); What i am trying to do is make the enemy always rotate it's head (the Z axis) to the player. Any ideas how can i do this?


///
//Speed - essential : true ?
let speed;
let enabled = false;
let phys;
function init() {
    speed =0.5;
    //let d = Math.sqrt( Math.0pow((enemy.x-playerPos.x), 2) + Math.pow((enemy.y-playerPos.y), 2) );


}
function update(dt) {
    dt = 1 / 60.0; // fixed delta time
    let enemy = this.entity().position();
    let player = this.scene().find('Actor')[0];
    let playerPos = player.worldPosition();
    let d = new Vec3(
                playerPos.x - enemy.x,
                playerPos.y - enemy.y,
                playerPos.z - enemy.z
            )

    const length = Math.hypot(d.x,d.y);
    //var length = Math.sqrt( Math.pow((enemy.x-playerPos.x), 2) + Math.pow((enemy.y-playerPos.y), 2) ); //metoda lu eucler

    let dirTowardsPlayer = new Vec3 (
        d.x / length,
        d.y / length,
        d.z / length
    )

    this.entity().setPosition(
                enemy.x + dt * dirTowardsPlayer.x * speed,
                enemy.y + dt * dirTowardsPlayer.y * speed,
                enemy.z + dt * dirTowardsPlayer.z * speed);


}
function signal(name, value) {
    enabled = value;
}
filutu
  • 11
  • 2

0 Answers0