Esempio n. 1
0
 /// <summary>
 /// Reset the new map
 /// </summary>
 void ResetMap()
 {
     spriteset = new SpritesetMap();
     // Update map (run parallel process event)
     InGame.Map.Update();
     // Run automatic change for BGM and BGS set on the map
     InGame.Map.Autoplay();
     // Clean the Garbage collector
     GC.Collect();
 }
Esempio n. 2
0
        /// <summary>
        /// Initialize Scenemap - Automatically called when Scene Object is created
        /// </summary>
        public override void LoadSceneContent()
        {
            InGame.Tags   = new Tags();
            spriteset     = new SpritesetMap();
            messageWindow = new WindowMessage();
            // Pass to Game_system for reference
            InGame.Temp.MessageWindow = messageWindow;
            Graphics.Transition(60);
            InGame.Map.Update();
            if (Graphics.SplashTexture != null)
            {
                Graphics.SplashTexture.Dispose();
            }

            //InitializeDebug(new int[2]{2,3});
        }
Esempio n. 3
0
        /// <summary>
        /// Initialize Scenemap - Automatically called when Scene Object is created
        /// </summary>
        public override void LoadSceneContent()
        {
            InGame.Tags = new Tags();
            spriteset = new SpritesetMap();
            messageWindow = new WindowMessage();
            // Pass to Game_system for reference
            InGame.Temp.MessageWindow = messageWindow;
            Graphics.Transition(60);
            InGame.Map.Update();
            if (Graphics.SplashTexture != null) Graphics.SplashTexture.Dispose();

            //InitializeDebug(new int[2]{2,3});
        }
Esempio n. 4
0
        /// <summary>
        /// Transfer the player to another map
        /// </summary>
        public void TransferPlayer()
        {
            // Execute Transition
            InGame.Temp.IsProcessingTransition = false;
            // Clear player place move call flag
            InGame.Temp.IsTransferringPlayer = false;
            // If move destination is different than current map
            bool isEdgeTransfer = false;
            int dir = 0;
            if (InGame.Map.MapId != InGame.Temp.PlayerNewMapId)
            {
                InGame.Player.EdgeTransferList[2] = 0;
                InGame.Player.EdgeTransferList[4] = 0;
                InGame.Player.EdgeTransferList[6] = 0;
                InGame.Player.EdgeTransferList[8] = 0;
                dir = InGame.Player.EdgeTransferDirection;
                isEdgeTransfer = InGame.Player.IsEdgeTransferring;
                InGame.Player.IsEdgeTransferring = false;
                InGame.Player.EdgeTransferDirection = 0;
                CheckResetSelfSwitches();
                // Clean Picture test
                if (GameOptions.IsDeletingPicturesAfterTransfer)
                {
                    foreach (GamePicture picture in InGame.Screen.Pictures) picture.Erase();
                }
                if (GameOptions.IsDeletingWeatherAfterTransfer)
                {
                    InGame.Screen.Weather(0, 0, 0);
                }
                // Clean Tone change
                if (!GameOptions.IsScreenToneCleanedAtEveryFrame) InGame.Screen.ColorTone = Tone.Empty;
                // Set up a new map
                InGame.Map.Setup(InGame.Temp.PlayerNewMapId);
            }
            // Edge Transfer
            if (isEdgeTransfer)
            {
                switch (dir)
                {
                    case 2:
                        InGame.Temp.PlayerNewX = InGame.Player.X;
                        InGame.Temp.PlayerNewY = (GameOptions.GamePlayerHeight / 2 + 2);
                        break;
                    case 4:
                        InGame.Temp.PlayerNewX = InGame.Map.Width * 32 - (GameOptions.GamePlayerWidth / 2 + 2);
                        InGame.Temp.PlayerNewY = InGame.Player.Y;
                        break;
                    case 6:
                        InGame.Temp.PlayerNewX = (GameOptions.GamePlayerWidth / 2 + 2);
                        InGame.Temp.PlayerNewY = InGame.Player.Y;
                        break;
                    case 8:
                        InGame.Temp.PlayerNewX = InGame.Player.X;
                        InGame.Temp.PlayerNewY = InGame.Map.Height * 32 - 2;
                        break;
                }
                InGame.Player.Moveto(InGame.Temp.PlayerNewX, InGame.Temp.PlayerNewY - 1);

            }
            else
            {
                // Set up player position
                InGame.Player.Moveto(InGame.Temp.PlayerNewX * 32 + 16, InGame.Temp.PlayerNewY * 32 + 32 - 1);
            }
            // Set player direction
            switch (InGame.Temp.PlayerNewDirection)
            {
                case 2: // down
                    InGame.Player.TurnDown();
                    break;
                case 4: // left
                    InGame.Player.TurnLeft();
                    break;
                case 6: // right
                    InGame.Player.TurnRight();
                    break;
                case 8: // up
                    InGame.Player.TurnUp();
                    break;
            }
            // Straighten player position
            InGame.Player.Straighten();
            // Remake sprite set
            spriteset.Dispose();
            spriteset = new SpritesetMap();
            // Update map (run parallel process event)
            InGame.Map.Update();
            // Run automatic change for BGM and BGS set on the map
            InGame.Map.Autoplay();
        }
Esempio n. 5
0
 /// <summary>
 /// Reset the new map
 /// </summary>
 void ResetMap()
 {
     spriteset = new SpritesetMap();
     // Update map (run parallel process event)
     InGame.Map.Update();
     // Run automatic change for BGM and BGS set on the map
     InGame.Map.Autoplay();
     // Clean the Garbage collector
     GC.Collect();
 }
Esempio n. 6
0
        /// <summary>
        /// Transfer the player to another map
        /// </summary>
        public void TransferPlayer()
        {
            // Execute Transition
            InGame.Temp.IsProcessingTransition = false;
            // Clear player place move call flag
            InGame.Temp.IsTransferringPlayer = false;
            // If move destination is different than current map
            bool isEdgeTransfer = false;
            int  dir            = 0;

            if (InGame.Map.MapId != InGame.Temp.PlayerNewMapId)
            {
                InGame.Player.EdgeTransferList[2] = 0;
                InGame.Player.EdgeTransferList[4] = 0;
                InGame.Player.EdgeTransferList[6] = 0;
                InGame.Player.EdgeTransferList[8] = 0;
                dir            = InGame.Player.EdgeTransferDirection;
                isEdgeTransfer = InGame.Player.IsEdgeTransferring;
                InGame.Player.IsEdgeTransferring    = false;
                InGame.Player.EdgeTransferDirection = 0;
                CheckResetSelfSwitches();
                // Clean Picture test
                if (GameOptions.IsDeletingPicturesAfterTransfer)
                {
                    foreach (GamePicture picture in InGame.Screen.Pictures)
                    {
                        picture.Erase();
                    }
                }
                if (GameOptions.IsDeletingWeatherAfterTransfer)
                {
                    InGame.Screen.Weather(0, 0, 0);
                }
                // Clean Tone change
                if (!GameOptions.IsScreenToneCleanedAtEveryFrame)
                {
                    InGame.Screen.ColorTone = Tone.Empty;
                }
                // Set up a new map
                InGame.Map.Setup(InGame.Temp.PlayerNewMapId);
            }
            // Edge Transfer
            if (isEdgeTransfer)
            {
                switch (dir)
                {
                case 2:
                    InGame.Temp.PlayerNewX = InGame.Player.X;
                    InGame.Temp.PlayerNewY = (GameOptions.GamePlayerHeight / 2 + 2);
                    break;

                case 4:
                    InGame.Temp.PlayerNewX = InGame.Map.Width * 32 - (GameOptions.GamePlayerWidth / 2 + 2);
                    InGame.Temp.PlayerNewY = InGame.Player.Y;
                    break;

                case 6:
                    InGame.Temp.PlayerNewX = (GameOptions.GamePlayerWidth / 2 + 2);
                    InGame.Temp.PlayerNewY = InGame.Player.Y;
                    break;

                case 8:
                    InGame.Temp.PlayerNewX = InGame.Player.X;
                    InGame.Temp.PlayerNewY = InGame.Map.Height * 32 - 2;
                    break;
                }
                InGame.Player.Moveto(InGame.Temp.PlayerNewX, InGame.Temp.PlayerNewY - 1);
            }
            else
            {
                // Set up player position
                InGame.Player.Moveto(InGame.Temp.PlayerNewX * 32 + 16, InGame.Temp.PlayerNewY * 32 + 32 - 1);
            }
            // Set player direction
            switch (InGame.Temp.PlayerNewDirection)
            {
            case 2:     // down
                InGame.Player.TurnDown();
                break;

            case 4:     // left
                InGame.Player.TurnLeft();
                break;

            case 6:     // right
                InGame.Player.TurnRight();
                break;

            case 8:     // up
                InGame.Player.TurnUp();
                break;
            }
            // Straighten player position
            InGame.Player.Straighten();
            // Remake sprite set
            spriteset.Dispose();
            spriteset = new SpritesetMap();
            // Update map (run parallel process event)
            InGame.Map.Update();
            // Run automatic change for BGM and BGS set on the map
            InGame.Map.Autoplay();
        }