Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
 public KoopaBlockCollisionHandler(ICollision side, IKoopa koopa, Game1 game)
 {
     Side       = side;
     this.koopa = koopa;
     Game       = game;
 }
Exemplo n.º 3
0
 public CollisionDetector()
 {
     side = new NoneCollision();
 }
Exemplo n.º 4
0
 public void Collision(ICollision obj)
 {
 }
 public CameraUpdateNullCollisionHandler(ICollision side)
 {
     Side = side;
 }
 public MarioObjectCollisionHandler(ICollision side, Game1 game)
 {
     Side = side;
     Game = game;
 }
Exemplo n.º 7
0
        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;
 }
Exemplo n.º 9
0
 public bool CheckCollision(ICollision obj)
 {
     return(Rect.IntersectsWith(obj.Rect));
 }
Exemplo n.º 10
0
 public bool Collision(ICollision collision)
 {
     return(collision.Rectangle.IntersectsWith(Rectangle));
 }
 public ItemPipeCollisionHandler(ICollision side)
 {
     Side = side;
 }
Exemplo n.º 12
0
 public virtual void CollisionEnter(ICollision collision)
 {
 }
Exemplo n.º 13
0
        public bool Contains(ICollision collisionObject)
        {
            BoundingBox2D otherObject = collisionObject as BoundingBox2D;

            return otherObject != null && this.boundingBox.Contains(otherObject.Box);
        }
Exemplo n.º 14
0
        public bool Intersects(ICollision collisionObject)
        {
            BoundingBox2D otherObject = collisionObject as BoundingBox2D;

            return otherObject != null && this.boundingBox.Intersects(otherObject.Box);
        }
Exemplo n.º 15
0
Arquivo: Level.cs Projeto: ktos/Rex-1
        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)));
        }
Exemplo n.º 16
0
 public override void CollisionResponse(ICollision collided)
 {
     State.CollisionResponse(collided);
 }
Exemplo n.º 17
0
 public override bool Collision(ICollision obj) //на столкновение со звездами не реагируем
 {
     return(false);
 }
 public ItemBlockBottomCollision(ICollision side)
 {
     Side      = side;
     item      = (IItem)Side.BottomOrRight;
     Collision = Side.Collision;
 }
Exemplo n.º 19
0
 public bool CheckCollision(ICollision Obj)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 20
0
 public MarioAndEnemyCollisionResponse(ICollision collision)
 {
     this.firstEntity  = (IMario)collision.GetFirstEntity();
     this.secondEntity = (IEnemy)collision.GetSecondEntity();
     this.collision    = collision;
 }
Exemplo n.º 21
0
 public bool Collision(ICollision obj) => obj.HitBox.IntersectsWith(this.HitBox);
 public KoopaKoopaCollisionHandler(ICollision side, Game1 game)
 {
     Side = side;
     Game = game;
 }
Exemplo n.º 23
0
 /// <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;
 }
Exemplo n.º 25
0
 public override void OnCollision(ICollision obj)
 {
     _isDead = true;
 }
 public BouncingItemWithBlockTopCollisionResponse(ICollision collision)
 {
     this.firstEntity = (IItem)collision.FirstEntity;
     this.collision   = collision;
 }
Exemplo n.º 27
0
 public void CollisionEnter(ICollision collision)
 {
 }
Exemplo n.º 28
0
 public MarioWithStarCollisionResponse(ICollision collision)
 {
     this.firstEntity  = (IMario)collision.FirstEntity;
     this.secondEntity = (IItem)collision.SecondEntity;
 }
Exemplo n.º 29
0
 /// <summary>
 /// Определяет факт столкновения объектов
 /// </summary>
 public bool Collision(ICollision collisionObject) => collisionObject.Rect.IntersectsWith(Rect);
Exemplo n.º 30
0
 public bool Collision(ICollision obj) => obj.rectangle.IntersectsWith(this.rectangle);
Exemplo n.º 31
0
 public bool CheckCollision(ICollision obj) => Rect.IntersectsWith(obj.Rect);
 public MarioWithHiddenBlockTopCollisionResponse(ICollision collision)
 {
     firstEntity    = collision.FirstEntity;
     secondEntity   = (IBlock)collision.SecondEntity;
     this.collision = collision;
 }
Exemplo n.º 33
0
        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;
            }
        }
Exemplo n.º 34
0
 public bool Collision(ICollision o) => o.Rect.IntersectsWith(this.Rect);
Exemplo n.º 35
0
        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);
            }
        }
Exemplo n.º 36
0
 public void CollisionEnter(ICollision collision)
 {
 }
Exemplo n.º 37
0
 public MeshCollider(ICollision collision)
 {
     this.m_Collision = collision;
 }