private void SpawnLaser(IGameObject turret, Scene world, Vector2f laserSpeed) { var gunPosition = turret.Body.Incircle.Radius * turret.Body.Rotation.Normalize(); var shotPosition = turret.Body.Incircle.Center + gunPosition; var laser = ObjectsManager.Build((uint)ObjectID.Laser, shotPosition); var laserScript = new LaserScript(laserSpeed, ObjectID.Turret); laser.BindScript(laserScript); laser.Lighting.Add(new Light(new Vector2f(0.1f, 0.1f), Color.Magenta, LightMode.Flashlight)); world.Add(laser); }
private void SpawnLaser(IGameObject ship, Scene world) { var gunsPosition = ship.Body.Rotation; var sideOffset = gunsPosition.Orthogonal() * (leftGunIsShooting ? 1 : -1) * selfSpriteSize / 4; var laserOffset = new Vector2f(laserSpriteSize, laserSpriteSize) / 2; gunsPosition *= selfSpriteSize / 4; var shotPosition = ship.Body.Incircle.Center + gunsPosition + sideOffset - laserOffset; var laser = ObjectsManager.Build((uint)ObjectID.Laser, shotPosition); var laserScript = new LaserScript(ship.Body.Rotation * laserSpeed, ObjectID.Player); laser.BindScript(laserScript); laser.Lighting.Add(new Light(new Vector2f(0.1f, 0.1f), Color.Magenta, LightMode.Flashlight)); leftGunIsShooting = !leftGunIsShooting; world.Add(laser); }