コード例 #1
0
        void GardenInitInBackground()
        {
            // music
            music = new GardenMusic();
            TreeRoot.AddNextUpdate(music);

            // MyDownloader configuration
            myDownloaderProtocol        = new HttpFtpProtocolExtension();
            Settings.Default.MaxRetries = 0;

            // load config
            if ((GardenConfig.Instance != null) && LoadGameLibrary())
            {
                // game chooser menu
                GameChooserMenu menu = new GameChooserMenu();
                menu.ActiveInState = new StateBrowsingMenu();
                mainScreenlet.AddNextUpdate(menu);
            }
            else
            {
                Exit();
            }

            // activate next phase
            TreeRoot.SetNextState(new StateBrowsingMenu());
        }
コード例 #2
0
            public override void OnUpdate(Gamelet g, ref UpdateParams p)
            {
                base.OnUpdate(g, ref p);
                // fade in
                loadingDisplay.iggNameBox.ColorB.FadeTarget = 1.0f;

                if (SimTime <= 1f || isFirstDraw)
                {
                    loadingDisplay.tbox.Text = "   Enjoy \"" + loadingDisplay.game.Name + "\"";
                }
                else
                {
                    // suppress drawing during play of another game - save resources and avoid gfx conflicts.
                    GardenGame.Instance.SuppressDraw();
                }
                if (SimTime > TIME_SHOW_PLAYING_MESSAGE)
                {
                    g.SetNextState(new StateLoadingDisplay_Empty(loadingDisplay));
                }

                // check keyboard - if esc, get back to garden state
                if (Keyboard.GetState().IsKeyDown(Keys.Escape))
                {
                    g.SetNextState(new StateBrowsingMenu());
                }
            }
コード例 #3
0
            public override void OnUpdate(Gamelet g, ref UpdateParams p)
            {
                base.OnUpdate(g, ref p);
                int    phase = (int)Math.Round((SimTime * 2f) % 3.0f);
                string t     = "Loading \"" + loadingDisplay.game.Name + "\"";

                switch (phase)
                {
                case 0: t += " .";
                    break;

                case 1: t += " ..";
                    break;

                case 2: t += " ...";
                    break;
                }
                loadingDisplay.tbox.Text = t;

                if (loadingDisplay.nextStateTimer >= 0f && SimTime > loadingDisplay.nextStateTimer)
                {
                    loadingDisplay.nextStateTimer = -1f;
                    g.SetNextState(new StateLoadingDisplay_Playing(loadingDisplay));
                }

                loadingDisplay.helpTextBox.Text = loadingDisplay.game.HelpText;
            }
コード例 #4
0
        void GardenInit()
        {
            // loading screen
            loadingScreenlet                    = new Screenlet(myWindowWidth, myWindowHeight);
            TTengineMaster.ActiveScreen         = loadingScreenlet;
            loadingScreenlet.ActiveInState      = new StatePlayingGame();
            loadingScreenlet.DrawInfo.DrawColor = Color.Black;
            loadingDisplay = new LoadingDisplay();
            loadingScreenlet.Add(loadingDisplay);

            // from here on, main screen
            mainScreenlet = new Screenlet(myWindowWidth, myWindowHeight);
            TTengineMaster.ActiveScreen = mainScreenlet;
            //mainScreenlet.ActiveInState = new StateBrowsingMenu();
            TreeRoot = new FixedTimestepPhysics();
            TreeRoot.SetNextState(new StateStartup()); // set the initial state

            TreeRoot.Add(mainScreenlet);
            TreeRoot.Add(loadingScreenlet);
            mainScreenlet.DrawInfo.DrawColor = new Color(169 * 2 / 3, 157 * 2 / 3, 241 * 2 / 3); // Color.Black;

            // graphics bitmap scaling that adapts to screen resolution
            mainScreenlet.Motion.Scale    = ((float)myWindowHeight) / 900f;
            loadingScreenlet.Motion.Scale = mainScreenlet.Motion.Scale;

            //
            Spritelet SplashScreen = new Spritelet("igglogo");

            SplashScreen.DrawInfo.LayerDepth = 1f;
            SplashScreen.ActiveInState       = new StateStartup();
            //l.Duration = 17.5f;
            SplashScreen.Motion.Position = mainScreenlet.Center;
            //l.Motion.Add(new MyFuncyModifier( delegate(float v) { return 1f-(float)Math.Sqrt((18f-v)/18f); }, "Scale" ));
            mainScreenlet.Add(SplashScreen);

            // music engine
            musicEngine           = MusicEngine.GetInstance();
            musicEngine.AudioPath = ".";
            if (!musicEngine.Initialize())
            {
                throw new Exception(musicEngine.StatusMsg);
            }

            Thread t = new Thread(new ThreadStart(GardenInitInBackground));

            t.Start();
        }
コード例 #5
0
            public override void OnUpdate(Gamelet g, ref UpdateParams p)
            {
                base.OnUpdate(g, ref p);
                // fade in
                loadingDisplay.iggNameBox.ColorB.AlphaTarget = 1.0f;

                if (SimTime <= 1f || isFirstDraw)
                {
                    loadingDisplay.tbox.Text = "   Enjoy \"" + loadingDisplay.game.Name + "\"";
                }
                else
                {
                    // suppress drawing during play of another game - save resources and avoid gfx conflicts.
                    GardenGame.Instance.SuppressDraw();
                }
                if (SimTime > TIME_SHOW_PLAYING_MESSAGE)
                {
                    g.SetNextState(new StateLoadingDisplay_Empty(loadingDisplay));
                }

                // check keyboard - if esc, get back to garden state
                if (loadingDisplay.isExiting)
                {
                    loadingDisplay.timeExiting += p.Dt;
                    if (loadingDisplay.timeExiting > TIME_ESC_PRESS_TO_EXIT)
                    {
                        loadingDisplay.willExitSoon = true;
                    }
                }

                // perform real exit operation (abort launcher task) when ESC already released
                if (!loadingDisplay.isExiting && loadingDisplay.willExitSoon)
                {
                    GardenGame.Instance.launcher.Abort();
                    loadingDisplay.willExitSoon = false;
                    //to do: // do not progress to next global state until user has released esc button? or do not consider that as a new ESC press (even better)
                }
            }
コード例 #6
0
        void GardenInit()
        {
            // loading screen
            loadingScreenlet = new Screenlet(myWindowWidth, myWindowHeight);
            TTengineMaster.ActiveScreen = loadingScreenlet;
            loadingScreenlet.ActiveInState = new StatePlayingGame();
            loadingScreenlet.DrawInfo.DrawColor = Color.Black;
            loadingDisplay = new LoadingDisplay();
            loadingScreenlet.Add(loadingDisplay);

            // from here on, main screen
            mainScreenlet = new Screenlet(myWindowWidth, myWindowHeight);
            TTengineMaster.ActiveScreen = mainScreenlet;
            //mainScreenlet.ActiveInState = new StateBrowsingMenu();
            TreeRoot = new FixedTimestepPhysics();
            TreeRoot.SetNextState(new StateStartup()); // set the initial state

            TreeRoot.Add(mainScreenlet);
            TreeRoot.Add(loadingScreenlet);
            mainScreenlet.DrawInfo.DrawColor = new Color(169 * 2 / 3, 157 * 2 / 3, 241 * 2 / 3); // Color.Black;

            // graphics bitmap scaling that adapts to screen resolution 
            mainScreenlet.Motion.Scale = ((float)myWindowHeight) / 900f;
            loadingScreenlet.Motion.Scale = mainScreenlet.Motion.Scale;

            //
            Spritelet SplashScreen = new Spritelet("igglogo");
            SplashScreen.DrawInfo.LayerDepth = 1f;
            SplashScreen.ActiveInState = new StateStartup();
            //l.Duration = 17.5f;
            SplashScreen.Motion.Position = mainScreenlet.Center;
            //l.Motion.Add(new MyFuncyModifier( delegate(float v) { return 1f-(float)Math.Sqrt((18f-v)/18f); }, "Scale" ));
            mainScreenlet.Add(SplashScreen);

            // music engine
            musicEngine = MusicEngine.GetInstance();
            musicEngine.AudioPath = ".";
            if (!musicEngine.Initialize())
                throw new Exception(musicEngine.StatusMsg);

            Thread t = new Thread(new ThreadStart(GardenInitInBackground));
            t.Start();
        }
コード例 #7
0
            public override void OnUpdate(Gamelet g, ref UpdateParams p)
            {
                base.OnUpdate(g, ref p);
                // fade in
                loadingDisplay.iggNameBox.ColorB.FadeTarget = 1.0f;

                if (SimTime <= 1f || isFirstDraw)
                {
                    loadingDisplay.tbox.Text = "   Enjoy \"" + loadingDisplay.game.Name + "\"";
                }
                else
                {
                    // suppress drawing during play of another game - save resources and avoid gfx conflicts.
                    GardenGame.Instance.SuppressDraw();
                }
                if (SimTime > TIME_SHOW_PLAYING_MESSAGE)
                {
                    g.SetNextState(new StateLoadingDisplay_Empty(loadingDisplay));
                }

                // check keyboard - if esc, get back to garden state
                if (Keyboard.GetState().IsKeyDown(Keys.Escape))
                {
                    g.SetNextState(new StateBrowsingMenu());
                }
            }
コード例 #8
0
            public override void OnUpdate(Gamelet g, ref UpdateParams p)
            {
                base.OnUpdate(g, ref p);
                int phase = (int)Math.Round((SimTime*2f) % 3.0f);
                string t = "Loading \"" + loadingDisplay.game.Name + "\"";
                switch (phase)
                {
                    case 0: t += " .";
                        break;
                    case 1: t += " ..";
                        break;
                    case 2: t += " ...";
                        break;
                }
                loadingDisplay.tbox.Text = t;

                if (loadingDisplay.nextStateTimer >= 0f && SimTime > loadingDisplay.nextStateTimer)
                {
                    loadingDisplay.nextStateTimer = -1f;
                    g.SetNextState(new StateLoadingDisplay_Playing(loadingDisplay));
                }

                loadingDisplay.helpTextBox.Text = loadingDisplay.game.HelpText;
            }