public void Start(ref GameRenderer renderer, ref Player player) { this.renderer = renderer; this.player = player; played = false; new Thread(EnemyAI_Thread).Start(); }
public Movement(ref Screen screen, ref Player player, ref Camera camera, ref GameRenderer game_render, ref Dictionary <MenuType, Menu> Menus) { this.screen = screen; this.Menus = Menus; this.game_render = game_render; this.player = player; this.camera = camera; screen.w.KeyDown += KeyDown; screen.w.KeyUp += KeyUp; }
public GameMaker(Window w, int _w, int _h) { Player.InitializeCharacters(); Level.LoadLevels(AppDomain.CurrentDomain.BaseDirectory + "Levels"); level = Level.Load(Level.Level_index); camera = new Camera(ref level); player = new Player(); player.Initialize(ref camera); screen = new Screen(ref w, _w, _h); game_render = new GameRenderer(ref screen, ref player, ref camera, ref level); camera.Start(ref game_render, ref player); }
//starts the gravity given reffered objects to collide with public static void EnableGravity(ref Level lvl, ref GameRenderer render) { objects = lvl.Tiles; entities = new List <Player>(); var game = render; bool landed; (gravity = new Thread((ThreadStart) delegate { for (;;) { if (game.isActive()) { try { //checks for each entity if it has landed, because of man-made input standard collision doesn't suffice therfore a stands boolean is used foreach (var po in entities) { landed = false; foreach (var obj in objects.Where(o => o.X - o.Width <= po.X && o.X + o.Width >= po.X)) { if (po.Stands(obj)) { landed = true; } } if (!(po.Landed = landed)) { po.Y += 0.95f; } else { Movement.jumps = 0; } } Thread.Sleep(1); } catch { //nothing } } } })).Start(); }
public void Start(ref GameRenderer render, ref Player player) { this.render = render; this.player = player; new Thread(CameraMovement_Thread).Start(); }