Exemple #1
0
 public void Start(ref GameRenderer renderer, ref Player player)
 {
     this.renderer = renderer;
     this.player   = player;
     played        = false;
     new Thread(EnemyAI_Thread).Start();
 }
Exemple #2
0
 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;
 }
Exemple #3
0
 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);
 }
Exemple #4
0
        //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();
        }
Exemple #5
0
 public void Start(ref GameRenderer render, ref Player player)
 {
     this.render = render;
     this.player = player;
     new Thread(CameraMovement_Thread).Start();
 }