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"); }
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); }
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; }
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(); } }
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); }