示例#1
0
        public static void Run()
        {
            FakeAGSTestGameStarter starter = new FakeAGSTestGameStarter();
            var game = AGSGame.CreateEmpty();

            _gameDebugView = new Lazy <GameDebugView>(() =>
            {
                var gameDebugView = new GameDebugView(game, new KeyboardBindings(game.Input));
                gameDebugView.Load();
                return(gameDebugView);
            });

            starter.StartGame(game);

            Size screenSize = new AGS.API.Size(320, 200);
            int  factor     = 2;

            AGSGameSettings settings = new AGSGameSettings(
                "Demo Game",
                screenSize,
                windowSize: new AGS.API.Size(screenSize.Width * factor, screenSize.Height * factor),
                windowState: WindowState.Normal);

            game.Start(settings);
        }
示例#2
0
        public static void Run()
        {
            IGame game = AGSGame.CreateEmpty();

            _gameDebugView = new Lazy <GameDebugView>(() =>
            {
                var gameDebugView = new GameDebugView(game);
                gameDebugView.Load();
                return(gameDebugView);
            });

            //Rendering the text at a 4 time higher resolution than the actual game, so it will still look sharp when maximizing the window.
            GLText.TextResolutionFactorX = 4;
            GLText.TextResolutionFactorY = 4;

            game.Events.OnLoad.Subscribe(async() =>
            {
                game.Factory.Fonts.InstallFonts("../../Assets/Fonts/pf_ronda_seven.ttf", "../../Assets/Fonts/Pixel_Berry_08_84_Ltd.Edition.TTF");
                AGSGameSettings.DefaultSpeechFont     = game.Factory.Fonts.LoadFontFromPath("../../Assets/Fonts/pf_ronda_seven.ttf", 14f, FontStyle.Regular);
                AGSGameSettings.DefaultTextFont       = game.Factory.Fonts.LoadFontFromPath("../../Assets/Fonts/Pixel_Berry_08_84_Ltd.Edition.TTF", 14f, FontStyle.Regular);
                AGSGameSettings.CurrentSkin           = null;
                game.State.RoomTransitions.Transition = AGSRoomTransitions.Fade();
                setKeyboardEvents(game);
                Shaders.SetStandardShader();

                addDebugLabels(game);
                Debug.WriteLine("Startup: Loading Assets");
                await loadPlayerCharacter(game);
                Debug.WriteLine("Startup: Loaded Player Character");
                await loadSplashScreen(game);
            });

            game.Start(new AGSGameSettings("Demo Game", new AGS.API.Size(320, 200),
                                           windowSize: new AGS.API.Size(640, 400), windowState: WindowState.Normal));
        }
示例#3
0
        public static void Run()
        {
            setupResolver();

            IGame game = AGSGame.CreateEmpty();

            //Rendering the text at a 4 time higher resolution than the actual game, so it will still look sharp when maximizing the window.
            GLText.TextResolutionFactorX = 4;
            GLText.TextResolutionFactorY = 4;

            game.Events.OnLoad.Subscribe(async() =>
            {
                AGSGameSettings.CurrentSkin = null;

                //addDebugLabels(game);
                WelcomeScreen screen = new WelcomeScreen(game);
                screen.Load();
                screen.Show();

                var room = game.Factory.Room.GetRoom("MainEditorRoom");
                await game.State.ChangeRoomAsync(room);
            });

            game.Start(new AGSGameSettings("MonoAGS Editor", new AGS.API.Size(1280, 800),
                                           windowSize: new AGS.API.Size(1280, 800), windowState: WindowState.Normal, preserveAspectRatio: false));
        }
示例#4
0
        private static async Task load(AGSProject agsProj)
        {
            var(games, assembly) = await GetGames(agsProj);

            if (games.Count == 0)
            {
                throw new Exception($"Cannot load game: failed to find an instance of IGameCreator in {agsProj.AGSProjectPath}.");
            }
            if (games.Count > 1)
            {
                throw new Exception($"Cannot load game: found more than one instance of IGameCreator in {agsProj.AGSProjectPath}.");
            }
            var gameCreatorImplementation = games[0];
            var gameCreator = (IGameStarter)Activator.CreateInstance(gameCreatorImplementation);
            var game        = AGSGame.CreateEmpty();

            gameCreator.StartGame(game);

            KeyboardBindings keyboardBindings = null;

            if (game is AGSGame agsGame) //todo: find a solution for any IGame implementation
            {
                Resolver resolver = agsGame.GetResolver();
                keyboardBindings = resolver.Container.Resolve <KeyboardBindings>();
                var resourceLoader = resolver.Container.Resolve <IResourceLoader>();
                resourceLoader.ResourcePacks.Add(new ResourcePack(new EmbeddedResourcesPack(assembly), 2));
            }

            _gameDebugView = new Lazy <GameDebugView>(() =>
            {
                var gameDebugView = new GameDebugView(game, keyboardBindings);
                gameDebugView.Load();
                return(gameDebugView);
            });

            game.Start(new AGSGameSettings("Demo Game", new AGS.API.Size(320, 200),
                                           windowSize: new AGS.API.Size(640, 400), windowState: WindowState.Normal));

            keyboardBindings.OnKeyboardShortcutPressed.Subscribe(async action =>
            {
                if (action == KeyboardBindings.GameView)
                {
                    var gameDebug = _gameDebugView.Value;
                    if (gameDebug.Visible)
                    {
                        gameDebug.Hide();
                    }
                    else
                    {
                        await gameDebug.Show();
                    }
                }
            });
        }
示例#5
0
        public static void Run()
        {
            IGame game = AGSGame.CreateEmpty();

            game.Events.OnLoad.Subscribe(async() =>
            {
                setupGame(game);
                await loadIntroRoom(game);
            });

            game.Start(new AGSGameSettings("A Game", new AGS.API.Size(1280, 720), windowState: WindowState.Normal));
        }
示例#6
0
        // TODO: proper struct to pass arguments
        public static void Run(string asset_path, string user_path)
        {
            AMG.Init(asset_path, user_path);
            IGame game = AGSGame.CreateEmpty();

            game.Events.OnLoad.Subscribe(async() =>
            {
                setupGame(game);
                await AMG.Rooms.MixerRoom.GotoAsync();
            });

            game.Start(new AGSGameSettings("Audio Mixer Test Game", new AGS.API.Size(1280, 800), windowState: WindowState.Normal));
        }
示例#7
0
        // TODO: proper struct to pass arguments
        public static void Run(string asset_path, string user_path)
        {
            LF.Init(asset_path, user_path);
            IGame game = AGSGame.CreateEmpty();

            game.Events.OnLoad.Subscribe(async() =>
            {
                setupGame(game);
                await LF.Rooms.TitleScreen.GotoAsync();
            });

            game.Start(new AGSGameSettings("Last & Furious", new AGS.API.Size(640, 400), windowState: WindowState.Normal));
        }
示例#8
0
        // TODO: proper struct to pass arguments
        public static void Run(string asset_path, string user_path)
        {
            Assets.Init(asset_path, user_path);
            IGame game = AGSGame.CreateEmpty();

            game.Events.OnLoad.Subscribe(async() =>
            {
                setupGame(game);
                await Assets.Rooms.ParallaxRoom.GotoAsync();
            });

            game.Start(new AGSGameSettings("Layer Game", new AGS.API.Size(640, 400), windowState: WindowState.Normal));
        }
示例#9
0
        public static void Run()
        {
            DemoStarter starter = new DemoStarter();
            var         game    = AGSGame.CreateEmpty();

            _gameDebugView = new Lazy <GameDebugView>(() =>
            {
                var gameDebugView = new GameDebugView(game, new KeyboardBindings(game.Input));
                gameDebugView.Load();
                return(gameDebugView);
            });

            starter.StartGame(game);
            game.Start(new AGSGameSettings("Demo Game", new AGS.API.Size(320, 200),
                                           windowSize: new AGS.API.Size(640, 400), windowState: WindowState.Normal));
        }