コード例 #1
0
ファイル: Level.cs プロジェクト: smldev/smlimitless
        private void ChangeActiveSectionForExit(Section section, Vector2 irisOutPosition, SectionExit source, SectionExit destination)
        {
            float halfScreenWidth = GameServices.ScreenSize.X / 2f;
            float halfScreenHeight = GameServices.ScreenSize.Y / 2f;
            Vector2 newCameraPosition = new Vector2(destination.Hitbox.Center.X - halfScreenWidth,
            destination.Hitbox.Center.Y - halfScreenHeight);

            ActiveSection = section;
            ActiveSection.SetIrisState(closed: true);
            ActiveSection.CameraSystem.IsFrozen = true;
            ActiveSection.CameraSystem.MoveIfFrozen(newCameraPosition);
            ActiveSection.IrisOut(90, irisOutPosition, (sender, e) =>
            {
                ActiveSection.IsActive = true;
                destination.Emerge(source.PlayersInExit);
                source.PlayersInExit.Clear();
                ActiveSection.CameraSystem.IsFrozen = false;
            });
        }