コード例 #1
0
        private void UpdateOrientation(BodyReference body)
        {
            Quaternion rotation = body.Pose.Orientation.ToQuaternion();

            forward        = -PhysicUtils.Forward(rotation);
            rightDirection = PhysicUtils.Left(rotation);
            upDirection    = PhysicUtils.Up(rotation);
        }
コード例 #2
0
        protected override void Fire()
        {
            Vector3 forward = PhysicUtils.Forward(cannonsRotation);
            Vector3 left    = PhysicUtils.Left(cannonsRotation);

            World.InstantiateLaser(CannonsPosition - left, forward, cannonsRotation, emitter);
            World.InstantiateLaser(CannonsPosition + left, forward, cannonsRotation, emitter);
        }
コード例 #3
0
        internal void SecondaryFire(double gameTime, Vector2 mousePosition)
        {
            if (gameTime < lastFire + fireCooldownTime)
            {
                return;
            }

            BodyReference body = Body();

            Vector3    position         = body.Pose.Position.ToVector3();
            Quaternion laserOrientation = PhysicUtils.DirectionsToQuaternion(TGCGame.camera.MouseDirection(position), upDirection);
            Vector3    up   = PhysicUtils.Up(laserOrientation);
            Vector3    left = PhysicUtils.Left(laserOrientation);

            World.InstantiateLaser(position + up * 1.0f + left * 4.75459f, -forward, laserOrientation, emitter, laserVolume / 4);
            World.InstantiateLaser(position + up * 1.0f - left * 4.75459f, -forward, laserOrientation, emitter, laserVolume / 4);
            World.InstantiateLaser(position - up * 1.7f + left * 4.75459f, -forward, laserOrientation, emitter, laserVolume / 4);
            World.InstantiateLaser(position - up * 1.7f - left * 4.75459f, -forward, laserOrientation, emitter, laserVolume / 4);

            lastFire = gameTime;
        }