void UFO::onUpdate() { SE_TRANSFORM[ty] = 16.0f; SEVector3f dir = (playerPos - SE_TRANSFORM.translation()) / 10.0f; float power = dir.lengthSqaure() - 150.0f; if (power > 300.0f) power = 300.0f; SE_RIGIDBODY.resetVelocity(se_data::AXIS_Y); SE_RIGIDBODY.applyForce(dir.unify() * power * UFO_SPEED); }
void Bot::onUpdate() { SEVector3f dir = (playerPos - SE_TRANSFORM.translation()) / 10.0f; float power = (dir.lengthSqaure() - 150.0f) / 2.0f; if (power > 90) power = 90.0f; dir[1] = 0.0f; dir = SE_MATRIX_ROTATE4(se_data::AXIS_Y, 90.0f - power)* SEVector4f(dir); SE_RIGIDBODY.applyForce(dir.unify() * BOT_SPEED); }