Beispiel #1
0
        public static void CreateMenuScene(Game game)
        {
            var jouer_entity = new Entity(true);

            jouer_entity.Name        = "jouer";
            jouer_entity.Transform.x = 300;
            jouer_entity.Transform.y = 200;
            var jouer_cmp       = new Engine.System.UI.ImageButtonComponent(jouer_entity);
            var jouer_img_asset = new Engine.System.UI.ImageAsset();

            jouer_img_asset.ContentName = "bouton_jouer";
            jouer_cmp.onclick.action    = (entity, context) => { Embed.LoadScene("game_scene", Engine.Core.Game.Instance); };

            jouer_cmp.AddAsset(jouer_img_asset);
            jouer_entity.AddComponent(jouer_cmp);

            var quitter_entity = new Entity(true);

            quitter_entity.Name        = "quitter";
            quitter_entity.Transform.x = 288;
            quitter_entity.Transform.y = 275;
            var quitter_cmp       = new ImageButtonComponent(quitter_entity);
            var quitter_img_asset = new ImageAsset();

            quitter_img_asset.ContentName = "bouton_quitter";
            quitter_cmp.AddAsset(quitter_img_asset);
            jouer_cmp.onclick.contextRefs = null;
            quitter_cmp.onclick.action    = (entity, context) => { Game.Instance.Exit(); };
            quitter_entity.AddComponent(quitter_cmp);

            var text_entity = new Entity(true);

            text_entity.Name        = "text";
            text_entity.Transform.x = 230;
            text_entity.Transform.y = 100;
            var text_cmp = new UITextComponent(text_entity);

            text_cmp.Text     = "Makers² : le jeu démo !";
            text_cmp.Color    = new Vector4(0, 0, 0, 1);
            text_cmp.FontSize = 36;


            var font_asset = new FontAsset();

            font_asset.ContentName = "coolvetica";
            text_cmp.AddAsset(font_asset);
            text_entity.AddComponent(text_cmp);

            var save_manager = new SavedFilesManager(Manager.Instance);
            var PreSave      = new List <Entity> {
                jouer_entity, quitter_entity, text_entity
            };
            var scene = new SavedScene();

            scene.entities = PreSave;
            save_manager.SaveScene(scene, "menu_scene");
        }
Beispiel #2
0
        public static void CreateGameScene(Game game)
        {
            var bg_ent = new Entity(true);

            bg_ent.Transform.x = 0;
            bg_ent.Transform.y = 0;
            bg_ent.AddComponent(new SpriteComponent(bg_ent, "CloudBackgroundSmall", true));
            bg_ent.AddComponent(new AudioComponent(bg_ent, "NyanCat", false, false, true));

            Bat      bat      = new Bat();
            Ball     ball     = new Ball();
            Breakout breakout = new Breakout(1, 0, ball);

            /*    breakout.CreateBricks(200, 200, "Brick", 100);
             *  breakout.CreateBricks(200, 400, "Brick", 100);
             *  breakout.CreateBricks(200, 600, "Brick", 100);
             *  breakout.CreateBricks(200, 800, "Brick", 100);
             */

            var invisibleWallLeft  = new InvisibleWall(new Vector2(0, 0), new Vector2(5, 980));
            var invisibleWallRight = new InvisibleWall(new Vector2(640, 0), new Vector2(5, 980));
            var invisibleWallTop   = new InvisibleWall(new Vector2(0, 0), new Vector2(1240, 5));
            var invisibleWallDown  = new InvisibleWall(new Vector2(0, 480), new Vector2(1240, 5), true);


            var bricks    = BrickArenaBuilder.CreateNew().Init().Build();
            var santa_ent = SantaBuilder.CreateNew().Init(game).Build();

            var camera_ent = new Entity(true);

            /*    var cameraInput = new InputComponent(camera_ent);
             *  ActionDelegate cam_up = (entity, dict) => { CameraManager.MoveCameraY(-1); };
             *  ActionDelegate cam_down = (entity, dict) => { CameraManager.MoveCameraY(1); };
             *  ActionDelegate cam_right = (entity, dict) => { CameraManager.MoveCameraX(1); };
             *  ActionDelegate cam_left = (entity, dict) => { CameraManager.MoveCameraX(-1); };
             *
             *  cameraInput.AddAction("cam_up", OnKey.DOWN, Key.Z, null, cam_up);
             *  cameraInput.AddAction("cam_down", OnKey.DOWN, Key.S, null, cam_down);
             *  cameraInput.AddAction("cam_right", OnKey.DOWN, Key.D, null, cam_right);
             *  cameraInput.AddAction("cam_left", OnKey.DOWN, Key.Q, null, cam_left);
             *  camera_ent.AddComponent(cameraInput);*/

            var save_manager = new SavedFilesManager(Manager.Instance);
            var PreSave      = new List <Entity> {
                bg_ent,
                camera_ent, invisibleWallTop, invisibleWallDown, invisibleWallLeft, invisibleWallRight, breakout, ball, bat
            };

            //  PreSave.AddRange(bricks);
            PreSave.AddRange(breakout.wall);
            var scene = new SavedScene();

            scene.entities = PreSave;
            save_manager.SaveScene(scene, "game_scene");
        }
 public SantaBuilder Init(Game game)
 {
     santaEnt             = new Entity(true);
     santaEnt.Transform.x = 100;
     santaEnt.Transform.y = 200;
     CreateSantaAudioComponent();
     CreateSantaSpriteComponent();
     CreateSantaCollisionComponent();
     CreateSantaMovementComponent();
     CreateSantaInputComponent();
     CreateRuleComponent();
     return(this);
 }
Beispiel #4
0
        public override void Render(Engine.Core.Game simulation, double interpolation)
        {
            var start = Engine.Core.GameLoop.GetElapsed();

            // clear backbuffer
            SDL2.SDL.SDL_SetRenderDrawColor(RendererPtr, 0x0, 0x0, 0x0, 0xff);
            SDL2.SDL.SDL_RenderClear(RendererPtr);

            simulation.Render(interpolation);

            // display backbuffer
            SDL2.SDL.SDL_RenderPresent(RendererPtr);

            FramesRendered++;
            LastFrameDuration = Engine.Core.GameLoop.GetElapsed() - start;
        }
Beispiel #5
0
        public static void LoadScene(string scene_name, Engine.Core.Game game, bool additively = false)
        {
            var save_manager = new SavedFilesManager(MakerSquare.FileSystem.Manager.Instance);
            var scene        = new SavedScene();

            save_manager.LoadScene(out scene, scene_name);

            if (!additively)
            {
                EntityManager.UnloadEntities();
            }

            EntityManager.AddListEntityInList(scene.entities);
            if (game.IsActive)
            {
                EntityManager.PostContentLoad();
            }
        }
Beispiel #6
0
        public override bool Handle(Engine.Core.Game simulation)
        {
            while (SDL2.SDL.SDL_PollEvent(out SDL2.SDL.SDL_Event e) != 0)
            {
                switch (e.type)
                {
                case SDL2.SDL.SDL_EventType.SDL_QUIT:
                    return(false);
                }
                ;

                if (e.type == SDL2.SDL.SDL_EventType.SDL_KEYUP || e.type == SDL2.SDL.SDL_EventType.SDL_KEYDOWN)
                {
                    CurrentKeys.CopyTo(PreviousKeys, 0);
                    var keysBuffer = SDL2.SDL.SDL_GetKeyboardState(out int keysBufferLength);
                    System.Runtime.InteropServices.Marshal.Copy(keysBuffer, CurrentKeys, 0, keysBufferLength);

                    if (KeyPressed(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_ESCAPE))
                    {
                        return(false);
                    }

                    var player = simulation.Player;
                    if (player != null)
                    {
                        // TODO handle LS/RS as direction vector + stick type

                        // LS
                        if (KeyPressed(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_UP))
                        {
                            player.HandleButton(InputButton.Up, InputButtonState.Pressed);
                        }
                        if (KeyReleased(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_UP))
                        {
                            player.HandleButton(InputButton.Up, InputButtonState.Released);
                        }

                        if (KeyPressed(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_DOWN))
                        {
                            player.HandleButton(InputButton.Down, InputButtonState.Pressed);
                        }
                        if (KeyReleased(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_DOWN))
                        {
                            player.HandleButton(InputButton.Down, InputButtonState.Released);
                        }

                        if (KeyPressed(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_LEFT))
                        {
                            player.HandleButton(InputButton.Left, InputButtonState.Pressed);
                        }
                        if (KeyReleased(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_LEFT))
                        {
                            player.HandleButton(InputButton.Left, InputButtonState.Released);
                        }

                        if (KeyPressed(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_RIGHT))
                        {
                            player.HandleButton(InputButton.Right, InputButtonState.Pressed);
                        }
                        if (KeyReleased(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_RIGHT))
                        {
                            player.HandleButton(InputButton.Right, InputButtonState.Released);
                        }

                        // X
                        if (KeyPressed(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_A))
                        {
                            player.HandleButton(InputButton.X, InputButtonState.Pressed);
                        }
                        if (KeyReleased(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_A))
                        {
                            player.HandleButton(InputButton.X, InputButtonState.Released);
                        }

                        // Y
                        if (KeyPressed(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_W))
                        {
                            player.HandleButton(InputButton.Y, InputButtonState.Pressed);
                        }
                        if (KeyReleased(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_W))
                        {
                            player.HandleButton(InputButton.Y, InputButtonState.Released);
                        }

                        // A
                        if (KeyPressed(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_S))
                        {
                            player.HandleButton(InputButton.A, InputButtonState.Pressed);
                        }
                        if (KeyReleased(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_S))
                        {
                            player.HandleButton(InputButton.A, InputButtonState.Released);
                        }

                        // B
                        if (KeyPressed(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_D))
                        {
                            player.HandleButton(InputButton.B, InputButtonState.Pressed);
                        }
                        if (KeyReleased(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_D))
                        {
                            player.HandleButton(InputButton.B, InputButtonState.Released);
                        }

                        // LB
                        if (KeyPressed(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_Q))
                        {
                            player.HandleButton(InputButton.LB, InputButtonState.Pressed);
                        }
                        if (KeyReleased(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_Q))
                        {
                            player.HandleButton(InputButton.LB, InputButtonState.Released);
                        }

                        // LT
                        if (KeyPressed(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_LSHIFT))
                        {
                            player.HandleButton(InputButton.LT, InputButtonState.Pressed);
                        }
                        if (KeyReleased(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_LSHIFT))
                        {
                            player.HandleButton(InputButton.LT, InputButtonState.Released);
                        }

                        // RB
                        if (KeyPressed(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_E))
                        {
                            player.HandleButton(InputButton.RB, InputButtonState.Pressed);
                        }
                        if (KeyReleased(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_E))
                        {
                            player.HandleButton(InputButton.RB, InputButtonState.Released);
                        }

                        // RT
                        if (KeyPressed(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_RSHIFT))
                        {
                            player.HandleButton(InputButton.RT, InputButtonState.Pressed);
                        }
                        if (KeyReleased(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_RSHIFT))
                        {
                            player.HandleButton(InputButton.RT, InputButtonState.Released);
                        }

                        // Back
                        if (KeyPressed(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_B))
                        {
                            player.HandleButton(InputButton.Back, InputButtonState.Pressed);
                        }
                        if (KeyReleased(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_B))
                        {
                            player.HandleButton(InputButton.Back, InputButtonState.Released);
                        }

                        // Start
                        if (KeyPressed(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_M))
                        {
                            player.HandleButton(InputButton.Start, InputButtonState.Pressed);
                        }
                        if (KeyReleased(SDL2.SDL.SDL_Scancode.SDL_SCANCODE_M))
                        {
                            player.HandleButton(InputButton.Start, InputButtonState.Released);
                        }
                    }

                    // F1 - F12 toggles
                    for (var i = SDL2.SDL.SDL_Scancode.SDL_SCANCODE_F1; i < SDL2.SDL.SDL_Scancode.SDL_SCANCODE_F12; i++)
                    {
                        if (!KeyPressed(i))
                        {
                            continue;
                        }

                        KeyboardButtonHandler((KeyboardButton)(i - SDL2.SDL.SDL_Scancode.SDL_SCANCODE_F1));
                    }
                }
            }

            return(true);
        }