Exemple #1
0
 /// <summary>
 /// Input controller class constructor
 /// </summary>
 /// <param name="field"></param>
 public HITankController(FrameworkElement field, Tank target)
     : base(target)
 {
     field.Focus();
     if (field != null)
     {
         this.Field = field;
         this.Field.MouseMove += MousePositionChanged;
         this.Field.MouseDown += Field_MouseDown;
     }
 }
Exemple #2
0
        /// <summary>
        /// Game process class constructor
        /// </summary>
        /// <param name="input_controller"></param>
        /// <param name="map"></param>
        /// <param name="obj"></param>
        public GameProcess(FrameworkElement gField, String mapName)
        {
            Current_Game = this;

            Camera = new Camera(new Vector(500, 500), new Vector(gField.ActualWidth, gField.ActualHeight), new Vector(200, 100));

            updateInterval = 1000 / FPS;

            Builder = new TanksMapBuilder();

            TmxBuildDirrector director = new TmxBuildDirrector(mapName, Builder);

            director.CreateMap();

            gameMap = Builder.GetMap();

            Manager = new CollisionManager(gameMap);

            director.CreateLandscape();

            director.CreateObjects();

            frameImages = TmxBuildDirrector.GetImagesFromCropedImage("Maps/Textures/explosion.png", 128, 128, 512, 512);

            Controllers = new List<Controller>();


         
            Locator loc = new Locator(new Vector(310, 310), 0, 2);       

            Engine  engine = new Engine(new Vector(0, 0), new Vector(0, 0), 0, 0);
                                                                              

            Player = Builder.BuildTank("Player", loc, engine);
            //Player.Body.Viewer = Boom;
     

            HITankController controller = new HITankController(gField, Player);

            Controllers.Add(controller);

            Enemies = new List<Tank>();

            List<GameObject> Objects = gameMap.GetObjects();

            for(int i = 0; i < Objects.Count; i++)
            {
                if(Objects[i].GetType().Name.ToLower() == "respaun")
                {
                    Engine eng = new Engine(new Vector(0, 0), new Vector(0, 0), 0, 0);

                    Tank enemy = Builder.BuildTank("Enemy_" + i.ToString(), new Locator(Objects[i].AbsoluteCenter, 0, 2), eng);

                    AITankController AIController = new AITankController(enemy);

                    Controllers.Add(AIController);
                }
            }

            Player.LocationChanged += GameProcess.Current_Game.Camera.UpdateFocus; 
        }
Exemple #3
0
        public TankController(Tank target)
        {
            Target = target;

        }
Exemple #4
0
        //PrimitiveObject Player { get; set; }

        public AITankController(Tank target) : base(target)
        {
            CurrentState = new SearchState();      
        }
Exemple #5
0
        public Tank BuildTank(string name, Locator locator, Engine engine)
        {
            Tank tank = new Tank(name);

            tank.LocalCenter = locator.Center;
            tank.LocalAngle = locator.Angle;
            tank.LocalZIndex = locator.ZIndex;

            tank.Engine = engine;
            tank.Engine.Enabled = true;

            if(tank.Name.ToLower() =="player")
                tank.Body =  BuildMachineBody("Body", @"Maps/Textures/dbody128.png");
            else
                tank.Body = BuildMachineBody("Body", @"Maps/Textures/dbodyred128.png");

            tank.Gun = BuildMachineTower("Gun", @"Maps/Textures/dtower128.png");
         
            tank.LocationChanged += map.UpdateObject;
            tank.LocationChanged += GameProcess.Current_Game.Manager.RegisterObject;
 

            tank.Crashed += map.RemoveObject;
            tank.Crashed += GameProcess.Current_Game.Camera.TryRemoveIndicator;
            tank.Crashed += GameProcess.Current_Game.Manager.UnRegisterObject;

            tank.LifeChanged += GameProcess.Current_Game.Camera.IndicateLifeChange;

            map.AddObject(tank);

            return tank;
        }