Пример #1
0
        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);
        }
Пример #2
0
        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);
        }