/// <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; } }
/// <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; }
public TankController(Tank target) { Target = target; }
//PrimitiveObject Player { get; set; } public AITankController(Tank target) : base(target) { CurrentState = new SearchState(); }
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; }