public void ToFixture()
 {
     fixture               = FixtureManager.CreateRectangle(animation.activeTexture.Width, animation.activeTexture.Height, position, bodyType, density);
     fixture.IsSensor      = true;
     fixture.OnCollision  += this.OnCollision;
     fixture.OnSeparation += this.OnSeperation;
 }
示例#2
0
        public void Initialise()
        {
            int i = 0;

            foreach (Texture2D texture in animation.pictures)
            {
                try
                {
                    Console.Out.WriteLine("Calculating Polygon for Texture No: " + (i + 1.0f));
                    fixtures.Add(FixtureManager.CreatePolygon(texture, scale, BodyType.Dynamic, animation.position, 1.0f));



                    fixtures[i].Body.Awake = false;


                    fixtures[i].Body.IgnoreGravity  = true;
                    fixtures[i].Body.FixedRotation  = true;
                    fixtures[i].Body.Mass           = 0;
                    fixtures[i].Body.Inertia        = 0;
                    fixtures[i].Body.BodyType       = BodyType.Static;
                    fixtures[i].Body.IgnoreGravity  = true;
                    fixtures[i].CollisionCategories = CollisionCategory.All;
                    fixtures[i].IsSensor            = true;
                    fixtures[i].Body.Active         = false;

                    fixtures[i].OnCollision += boss.OnCollision;
                }
                catch (Exception e)
                {
                    fixtures.Add(fixtures[i - 1]);
                }
                i++;
            }
        }
示例#3
0
        public void Update(GameTime gameTime)
        {
            if (fixtures != null)
            {
                animation.Update2(gameTime, FixtureManager.ToPixel(boss.fixture.Body.Position) + TextureOffset);

                foreach (Fixture fix in fixtures)
                {
                    fix.IsSensor      = true;
                    fix.Body.Position = new Vector2(animation.position.X / Level.PixelPerMeter, animation.position.Y / Level.PixelPerMeter) + PolygonOffset;
                    fix.Body.Active   = false;
                }


                activeFixture = fixtures[animation.activeFrameNumber];



                if (isActive)
                {
                    CurrentFrame = animation.activeTexture;

                    activeFixture.IsSensor    = true;
                    activeFixture.Body.Active = true;
                }
            }
        }
示例#4
0
        public void ToFixture()
        {
            try
            {
                if (accuracy == PhysicAccuracy.Low)
                {
                    fixture              = FixtureManager.CreatePolygon(texture, scale, bodyType, position, density);
                    fixture.isDeadly     = isDeadly;
                    fixture.isClimbable  = isClimbable;
                    fixture.OnCollision += this.InteractiveOnCollision;
                }
                else if (accuracy == PhysicAccuracy.High)
                {
                    fixtures                 = FixtureManager.TextureToPolygon(texture, scale, bodyType, position, density);
                    fixtures[0].isDeadly     = isDeadly;
                    fixtures[0].isClimbable  = isClimbable;
                    fixtures[0].OnCollision += this.InteractiveOnCollision;
                }
            }
            catch (Exception e)
            {
                fixture = FixtureFactory.CreateRectangle(Level.Physics, (texture.Width * scale.X) / Level.PixelPerMeter, (texture.Height * scale.Y) / Level.PixelPerMeter, density);
                fixture.Body.BodyType = bodyType;
                fixture.Body.Position = FixtureManager.ToMeter(position);
                fixture.isDeadly      = isDeadly;
                fixture.isClimbable   = isClimbable;

                fixture.OnCollision += this.InteractiveOnCollision;
            }
        }
示例#5
0
 public override void ToFixture()
 {
     fixture              = FixtureManager.CreateRectangle(width, height, position, BodyType.Static, 1);
     fixture.OnCollision += this.OnCollision;
     fixture.IsSensor     = true;
     fixture.isDeadly     = true;
 }
示例#6
0
    public Area()
    {
        hero     = new Hero();
        npcs     = new List <NPC>();
        fixtures = new List <Fixture>();

        fixtureManager = new FixtureManager();
    }
示例#7
0
        public void GetById_WhenCalledNotExistsFixture_ShouldThrowObjectNotFoundException()
        {
            // Arrange
            Guid fixtureId      = Guid.Empty;
            var  mockFixtureDal = new MockFixtureDal().MockGet(null);
            var  sut            = new FixtureManager(mockFixtureDal.Object);

            // Act & Assert
            Assert.Throws <ObjectNotFoundException>(() => sut.GetById(fixtureId));
        }
示例#8
0
        public void GetList_WhenCalledAll_ShouldReturnFixtures()
        {
            // Arrange
            var mockFixtureDal = new MockFixtureDal().MockGetDetailList(new List <FixtureForDetailDto>());
            var sut            = new FixtureManager(mockFixtureDal.Object);

            // Act
            var result = sut.GetList();

            // Assert
            Assert.NotNull(result.Data);
        }
示例#9
0
        public void Delete_WhenFixturePositionIsNotAvailable_ShouldThrowLogicException()
        {
            // Arrange
            Guid fixtureId      = Guid.NewGuid();
            var  mockFixtureDal = new MockFixtureDal().MockUpdate().MockGet(new Fixture()
            {
                FixturePositionId = 2
            });
            var sut = new FixtureManager(mockFixtureDal.Object);

            // Act & Assert
            Assert.Throws <LogicException>(() => sut.Delete(fixtureId));
        }
示例#10
0
        public void Update_WhenUpdatedFixture_ShouldUpdate()
        {
            // Arrange
            var fixtureForUpdateDto = new FixtureForUpdateDto();
            var mockFixtureDal      = new MockFixtureDal().MockUpdate().MockGet(new Fixture());
            var sut = new FixtureManager(mockFixtureDal.Object);

            // Act
            sut.Update(fixtureForUpdateDto);

            // Assert
            mockFixtureDal.VerifyUpdate(Times.Once());
        }
示例#11
0
        public void Add_WhenAddedNewFixture_ShouldAddAndReturnId()
        {
            // Arrange
            FixtureForAddDto fixtureForAddDto = new FixtureForAddDto();
            var mockFixtureDal = new MockFixtureDal().MockAdd(new Fixture());
            var sut            = new FixtureManager(mockFixtureDal.Object);

            // Act
            var result = sut.Add(fixtureForAddDto);

            // Assert
            Assert.Equal(new Guid(), result.Data);
        }
示例#12
0
        public override void ToFixture()
        {
            Vertices vertices = new Vertices();

            foreach (Vector2 v in WorldPoints)
            {
                vertices.Add(FixtureManager.ToMeter(v));
            }

            fixture = FixtureFactory.CreateLoopShape(Level.Physics, vertices, this.density);
            fixture.Body.BodyType     = this.bodyType;
            fixture.isHalfTransparent = this.isPervious;
        }
示例#13
0
        public void GetListBySupplierId_WhenCalledWithSupplierId_ShouldReturnFixtures()
        {
            // Arrange
            int supplierId     = 1;
            var mockFixtureDal = new MockFixtureDal().MockGetList(new List <Fixture>());
            var sut            = new FixtureManager(mockFixtureDal.Object);

            // Act
            var result = sut.GetListBySupplierId(supplierId);

            // Assert
            Assert.NotNull(result);
        }
示例#14
0
        public void GetById_WhenCalledWithId_ShouldReturnFixture()
        {
            // Arrange
            Guid fixtureId      = Guid.NewGuid();
            var  mockFixtureDal = new MockFixtureDal().MockGet(new Fixture());
            var  sut            = new FixtureManager(mockFixtureDal.Object);

            // Act
            var result = sut.GetById(fixtureId);

            // Assert
            Assert.NotNull(result.Data);
        }
示例#15
0
        public void GetListByPosition_WhenCalledWithPosition_ShouldReturnFixtures()
        {
            // Arrange
            var position       = FixturePositions.Position.Available;
            var mockFixtureDal = new MockFixtureDal().MockGetDetailListByPosition(new List <FixtureForDetailDto>());
            var sut            = new FixtureManager(mockFixtureDal.Object);

            // Act
            var result = sut.GetListByPosition(position);

            // Assert
            Assert.NotNull(result.Data);
        }
示例#16
0
        public void GetDebits_WhenCalledDebits_ReturnDebitDtos()
        {
            // Arrange
            var fixtureId      = Guid.NewGuid();
            var mockFixtureDal = new MockFixtureDal().MockGetDebits(new List <DebitForUserDetailDto>()).MockGet(new Fixture());
            var sut            = new FixtureManager(mockFixtureDal.Object);

            // Act
            var result = sut.GetDebits(fixtureId);

            // Assert
            Assert.NotNull(result.Data);
        }
示例#17
0
        public void UpdatePosition_WhenUpdatedFixturePosition_ShouldUpdatePosition()
        {
            // Arrange
            Guid fixtureId      = Guid.NewGuid();
            var  position       = FixturePositions.Position.Debit;
            var  mockFixtureDal = new MockFixtureDal().MockUpdate().MockGet(new Fixture());
            var  sut            = new FixtureManager(mockFixtureDal.Object);

            // Act
            sut.UpdatePosition(fixtureId, position);

            // Assert
            mockFixtureDal.VerifyUpdate(Times.Once());
        }
示例#18
0
        public void Delete_WhenDeletedFixture_ShouldUpdateFixturePosition()
        {
            // Arrange
            Guid fixtureId      = Guid.NewGuid();
            var  mockFixtureDal = new MockFixtureDal().MockUpdate().MockGet(new Fixture()
            {
                FixturePositionId = 1
            });
            var sut = new FixtureManager(mockFixtureDal.Object);

            // Act
            sut.Delete(fixtureId);

            // Assert
            mockFixtureDal.VerifyUpdate(Times.Once());
        }
        public void DispouseTest()
        {
            var service    = new Mock <IServiceFacade>();
            var fixtureOne = new Mock <IResourceFacade>();
            var fixtureTwo = new Mock <IResourceFacade>();

            service.Setup(s => s.GetResources("Football")).Returns(new List <IResourceFacade> {
                fixtureOne.Object, fixtureTwo.Object
            });
            var streamManager = new Mock <IStreamListenerManager>();

            var testing = new FixtureManager(5, streamManager.Object, service.Object.GetResources);

            testing.Dispose();
            Thread.Sleep(10000);
        }
示例#20
0
 public override void Update(GameTime gameTime)
 {
     if (fixture != null && bodyType == BodyType.Dynamic)
     {
         if (accuracy == PhysicAccuracy.Low)
         {
             position = FixtureManager.ToPixel(fixture.Body.Position);
             rotation = fixture.Body.Rotation;
         }
     }
     if (fixtures != null && bodyType == BodyType.Dynamic)
     {
         if (accuracy == PhysicAccuracy.High)
         {
             position = FixtureManager.ToPixel(fixtures[0].Body.Position);
             rotation = fixtures[0].Body.Rotation;
         }
     }
 }
 // Wird in der Load des zugehörigen Trägers gerufen
 public void Load(int amount, String path, float speed)
 {
     animation.Load(amount, path, speed, true);
     polygons      = FixtureManager.AnimationToPolygons(animation);
     activePolygon = polygons[animation.activeFrameNumber];
 }
        public void ShouldCreateListeners()
        {
            var streamListenerManager = new Mock<IStreamListenerManager>();
            var settings = new Mock<ISettings>();
            settings.Setup(x => x.EventStateFilePath).Returns(".");
            var service = new Mock<IServiceFacade>();
            service.Setup(x => x.IsConnected).Returns(true);
            var connector = new Mock<IAdapterPlugin>();
            var eventState = new Mock<IEventState>();

            var fixtureOne = new Mock<IResourceFacade>();
            var fixtureTwo = new Mock<IResourceFacade>();

            fixtureOne.Setup(f => f.Id).Returns("1");
            fixtureOne.Setup(f => f.GetSnapshot()).Returns(TestHelper.GetSnapshotJson());
            fixtureOne.Setup(f => f.Content).Returns(new Summary { Id = "1", Date = "23/05/2012", StartTime = "10:20", MatchStatus = 1});

            fixtureTwo.Setup(f => f.Id).Returns("2");
            fixtureTwo.Setup(f => f.GetSnapshot()).Returns(TestHelper.GetSnapshotJson());
            fixtureTwo.Setup(f => f.Content)
                      .Returns(new Summary
                          {
                              Id = "2", Date = "23/05/2012", StartTime = "13:20", MatchStatus = 1
                          });

            service.Setup(s => s.GetResources("Football")).Returns(new List<IResourceFacade> { fixtureOne.Object, fixtureTwo.Object });

            settings.Setup(s => s.FixtureCreationConcurrency).Returns(2);

            var fixtureManager = new FixtureManager(5,streamListenerManager.Object,service.Object.GetResources);
            fixtureManager.ProcessSport("Football");
            fixtureManager.ProcessSport("Rugby");

            //this checks service IsConnected 
            var adapter = new Adapter(
                settings.Object,
                service.Object,
                connector.Object,
                streamListenerManager.Object
                );

            adapter.Start();
            
            //adapter.ProcessSport("Football");
            //adapter.ProcessSport("Rugby");



            Thread.Yield();

            service.VerifyAll();
            
            eventState.Verify(es => es.RemoveFixture(It.IsAny<string>()), Times.Never());
        }
示例#23
0
 public override void ToFixture()
 {
     fixture                   = FixtureManager.CreateRectangle(width, height, position, bodyType, density);
     fixture.isClimbable       = isClimbable;
     fixture.isHalfTransparent = isPervious;
 }
示例#24
0
 public override void ToFixture()
 {
     fixture                   = FixtureManager.CreateCircle(radius, position, bodyType, density);
     fixture.isClimbable       = isClimbable;
     fixture.isHalfTransparent = isPervious;
 }
示例#25
0
        public void ShouldCreateListeners()
        {
            var streamListenerManager = new Mock <IStreamListenerManager>();
            var settings = new Mock <ISettings>();

            settings.Setup(x => x.EventStateFilePath).Returns(".");
            var service = new Mock <IServiceFacade>();

            service.Setup(x => x.IsConnected).Returns(true);
            var connector  = new Mock <IAdapterPlugin>();
            var eventState = new Mock <IEventState>();

            var fixtureOne = new Mock <IResourceFacade>();
            var fixtureTwo = new Mock <IResourceFacade>();

            fixtureOne.Setup(f => f.Id).Returns("1");
            fixtureOne.Setup(f => f.GetSnapshot()).Returns(TestHelper.GetSnapshotJson());
            fixtureOne.Setup(f => f.Content).Returns(new Summary {
                Id = "1", Date = "23/05/2012", StartTime = "10:20", MatchStatus = 1
            });

            fixtureTwo.Setup(f => f.Id).Returns("2");
            fixtureTwo.Setup(f => f.GetSnapshot()).Returns(TestHelper.GetSnapshotJson());
            fixtureTwo.Setup(f => f.Content)
            .Returns(new Summary
            {
                Id = "2", Date = "23/05/2012", StartTime = "13:20", MatchStatus = 1
            });

            service.Setup(s => s.GetResources("Football")).Returns(new List <IResourceFacade> {
                fixtureOne.Object, fixtureTwo.Object
            });

            settings.Setup(s => s.FixtureCreationConcurrency).Returns(2);

            var fixtureManager = new FixtureManager(5, streamListenerManager.Object, service.Object.GetResources);

            fixtureManager.ProcessSport("Football");
            fixtureManager.ProcessSport("Rugby");

            //this checks service IsConnected
            var adapter = new Adapter(
                settings.Object,
                service.Object,
                connector.Object,
                streamListenerManager.Object
                );

            adapter.Start();

            //adapter.ProcessSport("Football");
            //adapter.ProcessSport("Rugby");



            Thread.Yield();

            service.VerifyAll();

            eventState.Verify(es => es.RemoveFixture(It.IsAny <string>()), Times.Never());
        }
示例#26
0
        public override void LoadContent()
        {
            // Hier müssen alle Sprites geladen werden.
            idle_left.Load(6, "Sprites/Player/idleA_left_", 10, false);
            idle_right.Load(6, "Sprites/Player/idleA_right_", 10, false);
            idleb_left.Load(6, "Sprites/Player/idleB_left_", 10, false);
            idleb_right.Load(6, "Sprites/Player/idleB_right_", 10, false);
            idlec_left.Load(6, "Sprites/Player/idleC_left_", 10, false);
            idlec_right.Load(6, "Sprites/Player/idleC_right_", 10, false);

            noJumpIdle_left.Load(2, "Sprites/Player/nojumpI_left_", 10, false);
            noJumpIdle_right.Load(2, "Sprites/Player/nojumpI_right_", 10, false);

            jumpStarting_left.Load(5, "Sprites/Player/jumpStart_left_", 10, false);
            jumpStarting_right.Load(5, "Sprites/Player/jumpStart_right_", 10, false);
            falling_left.Load(2, "Sprites/Player/falling_left_", 10, true);
            falling_right.Load(2, "Sprites/Player/falling_right_", 10, true);
            landing_left.Load(8, "Sprites/Player/landing_left_", 7, false);
            landing_right.Load(8, "Sprites/Player/landing_right_", 7, false);
            landing_left_fast.Load(8, "Sprites/Player/landing_left_", 25, false);
            landing_right_fast.Load(8, "Sprites/Player/landing_right_", 25, false);

            running_left.Load(8, "Sprites/Player/walk_left_", 18, true);
            running_right.Load(8, "Sprites/Player/walk_right_", 18, true);
            runStarting_left.Load(8, "Sprites/Player/walkStart_left_", 18, false);
            runStarting_right.Load(8, "Sprites/Player/walkStart_right_", 18, false);
            runStopping_left.Load(8, "Sprites/Player/walkStop_left_", 18, false);
            runStopping_right.Load(8, "Sprites/Player/walkStop_right_", 18, false);

            noJumpRunning_left.Load(2, "Sprites/Player/nojumpW_left_", 10, false);
            noJumpRunning_right.Load(2, "Sprites/Player/nojumpW_right_", 10, false);

            climbing_left.Load(21, "Sprites/Player/climb_left_", 15, false);
            climbing_right.Load(21, "Sprites/Player/climb_right_", 15, false);

            hang_left.Load(5, "Sprites/Player/hang_left_", 8, true);
            hang_right.Load(5, "Sprites/Player/hang_right_", 8, true);
            hang2_left.Load(1, "Sprites/Player/hang2_left_", 10, true);
            hang2_right.Load(1, "Sprites/Player/hang2_right_", 10, true);
            pullup.Load(13, "Sprites/Player/pullup_left_", 10, false);

            dying_left.Load(4, "Sprites/Player/die_left_", 10, false);
            dying_right.Load(4, "Sprites/Player/die_right_", 10, false);
            dying2_left.Load(1, "Sprites/Player/die2_left_", 10, false);
            dying2_right.Load(1, "Sprites/Player/die2_right_", 10, false);

            CurrentAnimation    = idle_right;
            CharFix             = FixtureManager.CreatePolygon(idle_left.pictures[0], new Vector2(0.85f, 0.95f), BodyType.Dynamic, position, 1);
            CharFix.Friction    = 1;
            CharFix.Restitution = 0;
            CharFix.isPlayer    = true;

            CamFix = FixtureManager.CreateRectangle(100, 100, position, BodyType.Dynamic, 0.00001f);
            CamFix.Body.IgnoreGravity = true;
            CamFix.IsSensor           = true;
            CamFix.isPlayer           = true;

            CamFix.Body.Position = CharFix.Body.Position;
            Camera.Position      = CamFix.Body.Position * Level.PixelPerMeter;

            nRect = FixtureManager.CreateRectangle(140, 10, new Vector2(position.X, position.Y - 85), BodyType.Dynamic, 0);
            nRect.Body.FixedRotation = true;
            nRect.IsSensor           = true;
            nRect.isPlayer           = true;

            sRect = FixtureManager.CreateRectangle(135, 35, new Vector2(position.X, position.Y + 120), BodyType.Dynamic, 0);
            sRect.Body.FixedRotation = true;
            sRect.IsSensor           = true;
            sRect.isPlayer           = true;

            landRect = FixtureManager.CreateRectangle(100, 10, new Vector2(position.X, position.Y + 300), BodyType.Dynamic, 0);
            landRect.Body.FixedRotation = true;
            landRect.IsSensor           = true;
            landRect.isPlayer           = true;

            eRect = FixtureManager.CreateRectangle(25, 100, new Vector2(position.X + 105, position.Y), BodyType.Dynamic, 0);
            eRect.Body.FixedRotation = true;
            eRect.IsSensor           = true;
            eRect.isPlayer           = true;
            eRect.isEvent            = true;

            wRect = FixtureManager.CreateRectangle(25, 100, new Vector2(position.X - 110, position.Y), BodyType.Dynamic, 0);
            wRect.Body.FixedRotation = true;
            wRect.IsSensor           = true;
            wRect.isPlayer           = true;

            sRect.IgnoreCollisionWith(CharFix);
            sRect.IgnoreCollisionWith(CamFix);
            nRect.IgnoreCollisionWith(CharFix);
            nRect.IgnoreCollisionWith(CamFix);
            nRect.IgnoreCollisionWith(sRect);
            eRect.IgnoreCollisionWith(CharFix);
            eRect.IgnoreCollisionWith(CamFix);
            wRect.IgnoreCollisionWith(CharFix);
            wRect.IgnoreCollisionWith(CamFix);
            CharFix.IgnoreCollisionWith(sRect);
            CharFix.IgnoreCollisionWith(nRect);
            CharFix.IgnoreCollisionWith(eRect);
            CharFix.IgnoreCollisionWith(wRect);
            CharFix.IgnoreCollisionWith(CamFix);

            CharFix.OnSeparation += this.OnSeperation;
            CharFix.OnCollision  += this.OnCollision;
            nRect.OnCollision    += this.nOnCollision;
            sRect.OnCollision    += this.sOnCollision;
            sRect.OnSeparation   += this.sOnSeparation;
            landRect.OnCollision += this.landOnCollision;
            wRect.OnCollision    += this.ewOnCollision;
            wRect.OnSeparation   += this.ewOnSeparation;
            eRect.OnCollision    += this.ewOnCollision;
            eRect.OnSeparation   += this.ewOnSeparation;

            IdleState        = new PlayerIdleState(this, idle_left, idle_right);
            JumpState        = new PlayerJumpState(this, jumpStarting_left, jumpStarting_right);
            JumpTryState     = new PlayerJumpTryState(this, noJumpIdle_left, noJumpIdle_right);
            FallingState     = new PlayerFallingState(this, falling_left, falling_right);
            LandingFastState = new PlayerLandingState(this, landing_left_fast, landing_right_fast);
            LandingState     = new PlayerLandingState(this, landing_left, landing_right);
            WalkState        = new PlayerWalkState(this, running_left, running_right);
            WalkStartState   = new PlayerWalkStartState(this, runStarting_left, runStarting_right);
            WalkStopState    = new PlayerWalkStopState(this, runStopping_left, runStopping_right);
            HangingState     = new PlayerHangingState(this, hang_left, hang_right);
            HangingState2    = new PlayerHangingState2(this, hang2_left, hang2_right);
            DyingState       = new PlayerDyingState(this, dying_left, dying_right);
            ClimbingState    = new PlayerClimbingState(this, climbing_left, climbing_right);
            _state           = IdleState;
        }