public ShipEditorEntity( IAssetManagerProvider assetManagerProvider, I2DRenderUtilities twoRenderUtilities, I3DRenderUtilities threeRenderUtilities, IGridRenderer gridRenderer, ICollision collision, Ship ship) { this.m_DefaultFont = assetManagerProvider.GetAssetManager().Get<FontAsset>("font.Default"); this.m_2DRenderUtilities = twoRenderUtilities; this.m_3DRenderUtilities = threeRenderUtilities; this.m_GridRenderer = gridRenderer; this.m_Collision = collision; this.m_Ship = ship; this.m_PreviewRotation = 0; this.HorizontalRange = 30; this.VerticalRange = 30; this.VerticalSelection = 3; this.UpdateShipVisibilityCull(); }
public KoopaBlockCollisionHandler(ICollision side, IKoopa koopa, Game1 game) { Side = side; this.koopa = koopa; Game = game; }
public CollisionDetector() { side = new NoneCollision(); }
public void Collision(ICollision obj) { }
public CameraUpdateNullCollisionHandler(ICollision side) { Side = side; }
public MarioObjectCollisionHandler(ICollision side, Game1 game) { Side = side; Game = game; }
public override void ViewDidLoad() { base.ViewDidLoad(); // For accelerometer readings motionManager = new CMMotionManager(); motionManager.AccelerometerUpdateInterval = 0.01; // 100Hz //To handle long presses and bring up path start/end menu var longPressManager = new UILongPressGestureRecognizer(); //Graph loading code //Graph loading code var assembly = Assembly.GetExecutingAssembly(); var asset = assembly.GetManifestResourceStream("Navigator.iOS.Resources.dcsfloorWideDoors.xml"); pf = new Pathfinding.Pathfinding(new Dictionary<int, Stream>() { {0,assembly.GetManifestResourceStream("Navigator.iOS.Resources.dcsfloorWideDoors.xml")}, {1,assembly.GetManifestResourceStream("Navigator.iOS.Resources.dcsFloor1.xml")} },assembly.GetManifestResourceStream("Navigator.iOS.Resources.Rooms.xml") ); pf.CurrentFloor = 0; while (true) { if (pf.Ready) break; Thread.Sleep(500); } //set up the search bar and prediction box var searchController = new CustomSearchController(this, SearchBar, SearchPredictionTable, pf.Rooms); floorPlanGraph = Graph.Load(asset); wallCollImg = UIImage.FromBundle("Images/dcsfloorWideDoors.png"); col = new Collision(floorPlanGraph, new StepDetector()); ((Collision)col).WallCol = new WallCollision ((x,y) => GetPixelColor(new PointF(x, y), wallCollImg)); wallColTest = new WallCollision ((x,y) => GetPixelColor(new PointF(x, y), wallCollImg)); pathView = new PathView (wallColTest); col.SetLocation(707.0f, 677.0f); col.PassHeading(90); col.PositionChanged += HandleStepsTaken; //Container for floorplan and any overlaid images var container = new UIView(); //Will contain floorplan images floorplanImageView = new UIImageView(); //Load floorplan images floorplanImageNoGrid = UIImage.FromBundle("Images/FinalDcsFloor1.png"); floorplanImageWithGrid = UIImage.FromBundle("Images/dcsFloorWideDoorsGrid.png"); //Initiate the location arrow locationArrow = new LocationArrowImageView(); locationArrow.ScaleFactor = floorplanView.ZoomScale; pathView.ScaleFactor = floorplanView.ZoomScale; setStartPoint(690.0f, 840.0f); //Set sizes for floorplan view and path view floorplanView.ContentSize = floorplanImageNoGrid.Size; pathView.Frame = new CGRect(new CGPoint(0, 0), floorplanImageNoGrid.Size); //Add subviews to the container (including pathview and floorplanview) container.AddSubview(floorplanImageView); container.AddSubview(locationArrow); floorplanImageView.AddSubview(pathView); changeFloorPlanImage(floorplanImageView, floorplanImageNoGrid); container.SizeToFit(); //Adjust scrolling and zooming properties for the floorplanView floorplanView.MaximumZoomScale = 1f; floorplanView.MinimumZoomScale = .25f; floorplanView.AddSubview(container); floorplanView.ViewForZoomingInScrollView += (UIScrollView sv) => { return floorplanImageView; }; //Variables needed to convert device acceleration to world z direction acceleration double accelX = 0, accelY = 0, accelZ = 0; //Scale location arrow and paths when zooming the floorplan floorplanView.DidZoom += (sender, e) => { locationArrow.ScaleFactor = floorplanView.ZoomScale; pathView.ScaleFactor = floorplanView.ZoomScale; }; //Pass acceleremoter values to the collision class motionManager.StartAccelerometerUpdates(NSOperationQueue.CurrentQueue, (data, error) => { accelX = data.Acceleration.X*9.8; accelY = data.Acceleration.Y*9.8; accelZ = Math.Sqrt(Math.Pow(accelX, 2) + Math.Pow(accelY, 2) + Math.Pow(data.Acceleration.Z*9.8, 2)); col.PassSensorReadings(CollisionSensorType.Accelometer, accelX, accelY, accelZ); //displayAccelVal((float)accelZ); }); /* motionManager.StartDeviceMotionUpdates(NSOperationQueue.CurrentQueue, (data, error) => { //data.Attitude.MultiplyByInverseOfAttitude(data.Attitude); var test = data.UserAcceleration.X; var accelRelZ = data.Attitude.RotationMatrix.m31 * accelX + data.Attitude.RotationMatrix.m32 * accelY + data.Attitude.RotationMatrix.m33 * accelZ; debugLabel.Text = "" + Math.Round(test, 2);//Math.Round(accelRelZ, 2); } ); */ //LongPressManager will cause the path input menu to appear after a stationary long press longPressManager.AllowableMovement = 0; longPressManager.AddTarget(() => handleLongPress(longPressManager, floorPlanGraph)); floorplanView.AddGestureRecognizer(longPressManager); //the location manager handles the phone heading locationManager = new CLLocationManager(); locationManager.DesiredAccuracy = CLLocation.AccuracyBest; locationManager.HeadingFilter = 1; locationManager.UpdatedHeading += HandleUpdatedHeading; locationManager.StartUpdatingHeading(); //Button currently used for testing purposes only //Another testing button simulationButton.TouchUpInside += delegate { col.StepTaken(false); }; returnButton.TouchUpInside += delegate{ returnToMenu(); }; }
public KoopaObjectCollisionHandler(ICollision side, IKoopa koopa, Game1 game) { this.koopa = koopa; Side = side; Game = game; }
public bool CheckCollision(ICollision obj) { return(Rect.IntersectsWith(obj.Rect)); }
public bool Collision(ICollision collision) { return(collision.Rectangle.IntersectsWith(Rectangle)); }
public ItemPipeCollisionHandler(ICollision side) { Side = side; }
public virtual void CollisionEnter(ICollision collision) { }
public bool Contains(ICollision collisionObject) { BoundingBox2D otherObject = collisionObject as BoundingBox2D; return otherObject != null && this.boundingBox.Contains(otherObject.Box); }
public bool Intersects(ICollision collisionObject) { BoundingBox2D otherObject = collisionObject as BoundingBox2D; return otherObject != null && this.boundingBox.Intersects(otherObject.Box); }
private double DistanceFromCamera(ICollision collider) { var m = collider as Model; return(Math.Sqrt(Math.Pow(m.Position.X - ModelRenderer.CameraPosition.X, 2) + Math.Pow(m.Position.Y - ModelRenderer.CameraPosition.Y, 2) + Math.Pow(m.Position.Z - ModelRenderer.CameraPosition.Z, 2))); }
public override void CollisionResponse(ICollision collided) { State.CollisionResponse(collided); }
public override bool Collision(ICollision obj) //на столкновение со звездами не реагируем { return(false); }
public ItemBlockBottomCollision(ICollision side) { Side = side; item = (IItem)Side.BottomOrRight; Collision = Side.Collision; }
public bool CheckCollision(ICollision Obj) { throw new NotImplementedException(); }
public MarioAndEnemyCollisionResponse(ICollision collision) { this.firstEntity = (IMario)collision.GetFirstEntity(); this.secondEntity = (IEnemy)collision.GetSecondEntity(); this.collision = collision; }
public bool Collision(ICollision obj) => obj.HitBox.IntersectsWith(this.HitBox);
public KoopaKoopaCollisionHandler(ICollision side, Game1 game) { Side = side; Game = game; }
/// <summary> /// Проверка столкновений. /// </summary> /// <param name="obj">Объект, наследуемый от ICollision</param> /// <returns>Возвращает истину, если два прямоугольника пересеклись, ложь в противном случае.</returns> public bool Collision(ICollision obj) { return(obj.Rect.IntersectsWith(this.Rect)); }
public MarioAndQuestionBlockCollisionResponse(ICollision collision) { this.firstEntity = (IMario)collision.GetFirstEntity(); this.secondEntity = (IBlock)collision.GetSecondEntity(); this.collision = collision; }
public override void OnCollision(ICollision obj) { _isDead = true; }
public BouncingItemWithBlockTopCollisionResponse(ICollision collision) { this.firstEntity = (IItem)collision.FirstEntity; this.collision = collision; }
public void CollisionEnter(ICollision collision) { }
public MarioWithStarCollisionResponse(ICollision collision) { this.firstEntity = (IMario)collision.FirstEntity; this.secondEntity = (IItem)collision.SecondEntity; }
/// <summary> /// Определяет факт столкновения объектов /// </summary> public bool Collision(ICollision collisionObject) => collisionObject.Rect.IntersectsWith(Rect);
public bool Collision(ICollision obj) => obj.rectangle.IntersectsWith(this.rectangle);
public bool CheckCollision(ICollision obj) => Rect.IntersectsWith(obj.Rect);
public MarioWithHiddenBlockTopCollisionResponse(ICollision collision) { firstEntity = collision.FirstEntity; secondEntity = (IBlock)collision.SecondEntity; this.collision = collision; }
private void inputControl(string key) { switch (key) { case "faster": if (SimulationSpeed < 1000) { SimulationSpeed = SimulationSpeed * 2; } ViewController.setSpeedText("X" + SimulationSpeed); break; case "slower": if (SimulationSpeed > 0.1) { SimulationSpeed = SimulationSpeed * 0.5; } ViewController.setSpeedText("X" + SimulationSpeed); break; case "pause": IsPaused = !IsPaused; break; case "back": ModelController.mapBackFiveSeconds(); break; case "toggleDebugMode": debugMode = !debugMode; break; case "add1": ModelController.newAstroids(1); break; case "add2": ModelController.newAstroids(2); break; case "add3": ModelController.newAstroids(3); break; case "switchCollision": if (_collisionDetection.GetType() == typeof(QuadTreeCollision)) { _collisionDetection = new NaiveCollision(); } else { _collisionDetection = new QuadTreeCollision(); } break; case "switchPathing": if (_pathing.GetType() == typeof(DijkstraSearch)) { _pathing = new BFSearch(); } else { _pathing = new DijkstraSearch(); } break; case "remove1": ModelController.removeAstroids(1); break; case "remove2": ModelController.removeAstroids(2); break; case "remove3": ModelController.removeAstroids(3); break; default: break; } }
public bool Collision(ICollision o) => o.Rect.IntersectsWith(this.Rect);
public async void gameLoop() { DateTime oldTick = DateTime.UtcNow; DateTime newTick = DateTime.UtcNow; SimulationParams simulationParams = new SimulationParams(new TimeSpan(), new TimeSpan()); GalaxyBuilder galaxyBuilder = new GalaxyBuilder(); _collisionDetection = new QuadTreeCollision(); _pathing = new BFSearch(); IsPaused = false; while (true) { var file = ViewController.hasFile(); if (file?.Length > 0) { Map Galaxy = galaxyBuilder.buildGalaxy(loadGalaxy(file)); ModelController = new ModelController(Galaxy); simulationParams.TotalTime = TimeSpan.Zero; ContainsGalaxy = true; SimulationSpeed = 2; file = null; ViewController.resetFile(); ViewController.setSpeedText("X" + SimulationSpeed); } //simulationLoop while (ContainsGalaxy && ViewController.MainView.File == null) { newTick = DateTime.UtcNow; //TODO: check public and private everywhere (blijft hier tot dpa deadline //unit testing is 15% van het punt, voeg ze voor dpa toe //TODO: gebruik reflection factory voor behaviours inputControl(ViewController.getKeyPressed()); simulationParams.SetDelta(newTick - oldTick, SimulationSpeed); ModelController.runGameTick(simulationParams); //collision related code ModelController.CurMap.celestialBodies = _collisionDetection.Collide(ModelController.CurMap.celestialBodies); if (debugMode) //this should only be enabled for the algorithm assignment, but it is a cool showcase of the program { ViewController.bounds = _collisionDetection.GetBounds(); List <CelestialBody> sortedList = ModelController.CurMap.celestialBodies .OrderByDescending(x => x.Radius).ToList() .Where(n => n.Name != null).ToList(); ModelController.CurMap.celestialBodies = _pathing .GetPath( ModelController.CurMap.celestialBodies, sortedList[0], sortedList[1] ); } else { ViewController.bounds = null; ModelController.CurMap.celestialBodies.All(cb => { cb.IsMarked = false; return(true); }); } ViewController.drawFrame(ModelController.CurMap.celestialBodies); if (DateTime.UtcNow - newTick < MinTickTime) { await Task.Delay(MinTickTime); } oldTick = newTick; while (IsPaused && ViewController.MainView.File == null) //pause loop { await Task.Delay(MinTickTime); inputControl(ViewController.getKeyPressed()); oldTick = DateTime.UtcNow; } } await Task.Delay(MinTickTime); } }
public void CollisionEnter(ICollision collision) { }
public MeshCollider(ICollision collision) { this.m_Collision = collision; }