Example #1
0
 public TimedTransitionScene(SceneStack sceneStack, Scene newScene, float transitionTime, string stringToDraw)
     : base(sceneStack)
 {
     sceneToPush = newScene;
     timeToPop = transitionTime;
     drawString = stringToDraw;
 }
Example #2
0
    public void OnGameStartButton()
    {
        if (ready == true)
        {
            SoundManager.AssembleSound();

            SceneStack.SetBody(bod);
            SceneStack.SetEngine(boo);
            SceneStack.SetWeapon(wea);
            SceneManager.LoadScene(SceneStack.GetNextScene());
        }
    }
Example #3
0
    private IEnumerator Move()
    {
        // ボタンをfalseにすると選択できなく出来る
        StartButton.interactable = false;

        // フェード
        SceneStack.SetActive(false);
        yield return(StartCoroutine(SceneStack.Close()));

        // シーン遷移
        SceneStack.MoveScene("InGame");
    }
Example #4
0
    IEnumerator Start()
    {
        // シーン遷移完了
        yield return(StartCoroutine(SceneStack.Open()));

        SceneStack.SetActive(true);

        // 初期化処理開始
        StartCoroutine(GameInitializeCoroutine());

        // 初期化処理完了時の処理 (ゲーム開始など)
        OnInitializedAsync
        .Subscribe(_ => Debug.Log("completed."));
    }
        static void Main(string[] args)
        {
            using (new AgateWinForms(args)
                   .Initialize())
                using (new DisplayWindowBuilder(args)
                       .Title("Event Driven Scene Example")
                       .BackbufferSize(1280, 720)
                       .AutoResizeBackBuffer()
                       .QuitOnClose()
                       .Build())
                {
                    // Create a Scene object for the title screen. When the enter key or
                    // the start button on the first gamepad is pressed, that will
                    // begin a new scene.
                    GamepadInputHandler titleInputHandler = NewInputHandler();

                    Scene titleScene = new Scene {
                        InputHandler = titleInputHandler
                    };

                    titleInputHandler.Gamepads.First().ButtonPressed += (sender, e) =>
                    {
                        if (e.Button == GamepadButton.Start)
                        {
                            CreateGameScene(titleScene.SceneStack);
                        }
                        else if (e.Button == GamepadButton.Back)
                        {
                            titleScene.IsFinished = true;
                        }
                    };

                    var font = new Font(Font.AgateSans)
                    {
                        Size  = 22,
                        Style = FontStyles.Bold
                    };

                    titleScene.Redraw += (sender, eventArgs) =>
                    {
                        Display.Clear(Color.Maroon);
                        font.DrawText(0, 0, "Press enter to begin game, escape to quit.");
                    };

                    var stack = new SceneStack();

                    stack.Start(titleScene);
                }
        }
Example #6
0
        public XleProgram(SceneStack scenes,
                          SceneFactory sceneFactory,
                          IVocabulary[] consoleCommands,
                          IAgateConsoleManager consoleManager)
        {
            this.scenes         = scenes;
            this.sceneFactory   = sceneFactory;
            this.consoleManager = consoleManager;

            consoleManager.AddVocabulary(consoleCommands);

            consoleManager.Quit += () => IsFinished = true;

            StartTitle();
        }
Example #7
0
    IEnumerator StartGame()
    {
        Voice.Play(VO.Start);
        yield return(StartCoroutine(SceneStack.Open()));

        ui.hpBar.GetComponent <UiAutoFill> ().StartFill();
        yield return(null);

        foreach (var npc in npcs)
        {
            npc.StartNpc();
        }

        yield return(null);

        SceneStack.SetActive(true);
    }
Example #8
0
        /// <summary>
        /// Initializes a new instance of the <see cref="T:MB2D.MBGame"/> class and
        /// defines essential graphics settings.
        /// </summary>
        public MBGame(Type initSceneType)
        {
            _graphics    = new GraphicsDeviceManager(this);
            _scenes      = new SceneStack();        // main scene stack
            _gameObjects = new EntityMap();
            _fps         = new FramesPerSecondCounter();
            _textHandler = new TextInputHandler();
            _lastInput   = string.Empty;
            _initScene   = initSceneType;

            ForceQuit             = false;
            Content.RootDirectory = "Content";

            // 720p
            _graphics.PreferredBackBufferWidth  = 1280;
            _graphics.PreferredBackBufferHeight = 720;
            _graphics.ApplyChanges();
        }
Example #9
0
        private void Mouse_MouseUp(object sender, MouseButtonEventArgs e)
        {
            if (hideTitle)
            {
                hideTitle          = false;
                timeSinceMouseMove = 0;

                return;
            }
            if (mousex > 100 - 20 && mousex < 500 && mousey > 100 && mousey < 130)
            {
                GameState gameState = gameStateFactory.CreateGameState();
                gameState.world = beginningWorld;
                gameState.level = beginningLevel;

                BeginGame?.Invoke(gameState);
            }

            if (mousex > 100 - 20 && mousex < 500 && mousey > 160 && mousey < 190)
            {
                SceneStack.Remove(this);
            }
            if (mousex > 100 - 20 && mousex < 500 && mousey > 250 && mousey < 280)
            {
                config.BackgroundScroll = !config.BackgroundScroll;
                game.bgspeed            = config.BackgroundScroll ? 50.0f : 0.0f;
            }
            if (mousex > 100 - 20 && mousex < 500 && mousey > 280 && mousey < 320)
            {
                config.PlayMusic = !config.PlayMusic;

                if (config.PlayMusic)
                {
                    StartTitleMusic();
                }
                else
                {
                    MediaPlayer.Stop();
                }
            }
        }
Example #10
0
        public static bool TryParse(string s, out SceneStack r, out string errorMessage)
        {
            if (!pattern.IsMatch(s))
            {
                errorMessage = "Provided string isn't in correct format";
                r            = default;
                return(false);
            }

            string[] parts = s.Split(';');

            List <Element> elements = new List <Element>();

            foreach (string part in parts)
            {
                if (!Element.TryParse(part, out Element partElement, out string errMsg))
                {
                    errorMessage = "Error parsing part:\n" + errMsg;
                    r            = default;
                    return(false);
                }
Example #11
0
    // Use this for initialization
    void Start()
    {
        body   = SceneStack.GetBody();
        engine = SceneStack.GetEngine();
        weapon = SceneStack.GetWeapon();

        if (body == "body1")
        {
            gameObject.transform.FindChild("Fighter").gameObject.SetActive(true);
        }
        else if (body == "body2")
        {
            gameObject.transform.FindChild("Done_Player").gameObject.SetActive(true);
        }

        if (engine == "booster1")
        {
            gameObject.transform.FindChild("EngineTrails1").gameObject.SetActive(true);
        }
        else if (engine == "booster2")
        {
            gameObject.transform.FindChild("EngineTrails2").gameObject.SetActive(true);
        }
    }
Example #12
0
 /// <summary>
 /// Create new world generator scenen instance
 /// </summary>
 public WorldGenScene(SceneStack sceneStack, InputManager inputManager, ResourceManager resourceManager) : base(sceneStack, inputManager, resourceManager)
 {
     this.Initialize();
 }
Example #13
0
 public OrbitalGravityScene(SceneStack sceneStack)
     : base(sceneStack)
 {
     background = new Background(this, Vector2.Zero, "space2");
 }
Example #14
0
    IEnumerator Build()
    {
        yield return(StartCoroutine(SceneStack.LoadSceneAsync("SoratoUi")));

        ui = GameObject.FindObjectOfType <UiManager> ();
        yield return(StartCoroutine(ui.Build()));

        board.Build(new Status()
        {
            maxHp = 20f,
            curHp = 20f,
        });
        foreach (var npc in npcs)
        {
            npc.Build();
        }
        yield return(null);

        camera = GameObject.FindObjectOfType <CameraManager> ();
        camera.Build();
        yield return(null);

        tgtMan = new TargetManager();
        tgtMan.targetChanged
        .Subscribe(t => {
            board.shooter.SetTarget(t.receptor);
        });
        foreach (var c in tgtMan.candidates)
        {
            var uiTarget = ui.CreateTarget();
            c.OnPositionChanged.Subscribe(p => uiTarget.UpdateTargetPosition(p));
            c.OnDistChanged.Subscribe(d => uiTarget.UpdateTargetDist(d));
            c.OnTargetChanged.Subscribe(b => uiTarget.SetActiveTarget(b));
            c.board.status.OnDamaged.Subscribe(d => uiTarget.dmgImage.fillAmount = d.hp);
            c.board.status.OnDead.Subscribe(_ => uiTarget.Stop());
            c.board.status.OnDead.Subscribe(_ => tgtMan.candidates.Remove(c));
        }
        yield return(null);

        ui.rotChanged
        .Subscribe(v => board.kinematics.rotater.SetRotate(v.b, v.item.eulerAngles.z));
        ui.engChanged
        .Subscribe(i => board.kinematics.engine.SetState((Engine.State)i));
        ui.dashBtn.onClick.AsObservable()
        .Subscribe(_ => board.kinematics.WillBoost());
        ui.fireBtn.onClick.AsObservable()
        .Subscribe(_ => board.shooter.WillShoot());
        yield return(null);

        ui.spdGauge.UpdateAsObservable()
        .Subscribe(_ => {
            ui.spdGauge.fillAmount = board.kinematics.speedRate;
            ui.spdText.text        = board.kinematics.engine.speed.ToString("F1") + " m/s";
            ui.heightText.text     = board.transform.position.y.ToString("F1") + " m";
        });

        ui.dashGauge.UpdateAsObservable()
        .Subscribe(_ => {
            ui.dashGauge.fillAmount = board.kinematics.booster.power;
            ui.dashText.text        = Mathf.RoundToInt(board.kinematics.booster.power * 100).ToString();
            ui.dashFlash.SetActive(board.kinematics.booster.full);
        });
        ui.fireGauge.UpdateAsObservable()
        .Subscribe(_ => {
            ui.fireGauge.fillAmount = board.shooter.status.power;
            ui.fireText.text        = board.shooter.status.count.ToString();
            ui.fireFlash.SetActive(board.shooter.status.full);
        });
        yield return(null);

        ui.UpdateAsObservable()
        .Subscribe(_ => tgtMan.UpdateTgtDist(board.shooter.distToTarget));
        tgtMan.OnScreenTargetChanged
        .Subscribe(p => {
            ui.lineVertical.position   = Vector3.right * p.x;
            ui.lineHorizontal.position = Vector3.up * p.y;
        });

        ui.extra.onClick.AddListener(() => camera.FlipPostProcess());
        yield return(null);

        board.kinematics.engine.SetState(Engine.State.Stop);
        board.kinematics.OnBoosted
        .Where(b => b)
        .Subscribe(_ => ui.chara.SetFace(CharaFace.Cool));
        board.shooter.OnShooted
        .Subscribe(_ => Voice.Play(VO.Attack));

        board.status.OnDamaged.Subscribe(s => ui.hpBar.fillAmount = s.hp);
        yield return(null);

        foreach (var dmg in board.damages)
        {
            dmg.OnDamage
            .Subscribe(d => camera.Shake());
            dmg.OnDamage
            .Subscribe(d => ui.chara.SetFace(CharaFace.Ouch));
            dmg.OnDamage
            .Subscribe(d => Voice.Play(VO.Damage));
        }
        tgtMan.OnDamage
        .Subscribe(d => ui.chara.SetFace(CharaFace.Smile));
        tgtMan.OnDamage
        .Subscribe(d => Voice.Play(VO.Hit));
        yield return(null);

        board.status.OnDead
        .Subscribe(_ => camera.UpShot(board.transform));
        board.status.OnDead
        .Subscribe(_ => Voice.Play(VO.Dead));
        foreach (var b in npcs.Select(n => n.board))
        {
            b.status.OnDead
            .Subscribe(_ => camera.UpShot(b.transform));
        }
        yield return(null);

        var gameOver = new Subject <ResultInfo> ();

        gameOver.Take(1).Subscribe(r => StartCoroutine(Result(r)));

        board.status.OnDead
        .Subscribe(_ => gameOver.OnNext(new ResultInfo()
        {
            win = false
        }));
        var primeNpcBoard = npcs.FirstOrDefault().board;

        primeNpcBoard.status.OnDead
        .Subscribe(_ => gameOver.OnNext(new ResultInfo()
        {
            win = true
        }));
        yield return(null);

        ui.baseChanged
        .Select(a => new Vector3(-a.y, a.x, 0f))
        .Subscribe(a => camera.current.Rotate(a));
        this.LateUpdateAsObservable()
        .Subscribe(_ => {
            camera.current.SetTargetPosition(board.transform.position);
            camera.UpdateCamera();

            foreach (var c in tgtMan.candidates)
            {
                c.UpdateScreenPosition(camera.ScreenPosition(c.receptor.position));
            }

            var bPos = camera.ScreenPosition(board.transform.position).pos;
            tgtMan.Update(bPos);
        });
        yield return(null);
    }
Example #15
0
 public TextOverlayScene(SceneStack sceneStack)
     : base(sceneStack)
 {
 }
Example #16
0
 public MapViewerScene(SceneStack sceneStack, InputManager inputManager, ResourceManager resourceManager) : base(sceneStack, inputManager, resourceManager)
 {
     this.Initialize();
 }
Example #17
0
 /// <summary>
 /// Create new game scene based on given simulation state
 /// </summary>
 public GameScene(SceneStack sceneStack, InputManager inputManager, ResourceManager resourceManager, SimulationState state)
     : base(sceneStack, inputManager, resourceManager)
 {
     this.Initialize(state);
 }
Example #18
0
 public void OnBackButton()
 {
     SoundManager.MenuSound();
     SceneManager.LoadScene(SceneStack.GetPrevScene());
 }
Example #19
0
 // Start is called before the first frame update
 void Start()
 {
     SessionData.SaveFileExist = SaveFileManager.Check(false);
     SceneStack.LoadScene(1);
 }