Example #1
0
        public Wall(Vector2 GridPos)
            : base("Tiles/Wall", GridPos)
        {
            //texture = Globals.content.Load<Texture2D>(tex);
            this.GridPos = new Vector2(GridPos.X * TileWidth, GridPos.Y * TileHeight);

            rectangle = BodyFactory.CreateRectangle(Globals.World, width: TileWidth, height: TileHeight, density: 5f);
            rectangleSprite = new FarseerPhysics.SamplesFramework.Sprite(Globals.AssetCreatorr.TextureFromShape(rectangle.FixtureList[0].Shape,
                                                                    MaterialType.Squares,
                                                                    GetColor(this.GridPos), 1f));
            rectangle.Position = this.GridPos;
            rectangle.Friction = 0.75f;
        }
        public PieSlice(Body attached, Color colorIn, float pieLengthIn)
        {
            texture = Globals.content.Load<Texture2D>("Sensors/Wisker");
            slices = BodyFactory.CreateRectangle(Globals.World, pieLengthIn * 2, pieLengthIn * 2, 1f);

            sprite = new FarseerPhysics.SamplesFramework.Sprite(Globals.AssetCreatorr.TextureFromShape(slices.FixtureList[0].Shape,
                                                                                MaterialType.Squares, Color.Teal, 1f));

            slices.FixtureList[0].IsSensor = true;
            slices.FixtureList[0].OnCollision += CollisionHandler;
            slices.FixtureList[0].OnSeparation += SeparationHandler;
            collided = new List<Fixture>();

            attachedTo = attached;
            color = colorIn;
            pieLength = pieLengthIn;
        }
        public CircleSensor(Body attatched, Color color, float radius = 1f)
        {
            texture = Globals.content.Load<Texture2D>("Sensors/Wisker");
            color.A = 255 / 10;
            circle = BodyFactory.CreateCircle(Globals.World, radius: radius, density: 1f);
            Sprite = new FarseerPhysics.SamplesFramework.Sprite(Globals.AssetCreatorr.TextureFromShape(circle.FixtureList[0].Shape,
                                                                                MaterialType.Squares,
                                                                                Color.White, 1f));

            WiskerR = .16f;
            circle.FixtureList[0].IsSensor = true;
            circle.FixtureList[0].OnCollision += CollisionHandler;

            circle.FixtureList[0].OnSeparation += SeperationHandler;
            collided = new List<Fixture>();
            //circle.FixtureList[0].OnSeparation += this.GetCollisionHandler;

            circle.Position = attatched.Position;
            attachedTo = attatched;
            this.radius = radius;
        }
Example #4
0
        public BadGuy(Vector2 GridPos, Color color, int id, BodyType bodType, int circleRadius)
            : base("mobs/Boar", GridPos, "Snake" + id, GetRandDir(), 15, 0, id)
        {
            circle = BodyFactory.CreateCircle(Globals.World, radius: .14f, density: 1f);
            Sprite = new FarseerPhysics.SamplesFramework.Sprite(Globals.AssetCreatorr.TextureFromShape(circle.FixtureList[0].Shape,
                                                                                MaterialType.Squares,
                                                                                color, 1f));
            circle.LinearDamping = 1.5f;
            circle.AngularDamping = 3f;

            circle.BodyType = bodType;

            Vector2 pos = GridPos;// Globals.map.GetRandomFreePos();
            circle.Position = new Vector2(pos.X * TileWidth, pos.Y * TileHeight);
            circle.Friction = 0.0f;

            Wiskers[0] = new Wisker(attatched: circle, offSet: 0, WiskerLength: 1f);
            Wiskers[1] = new Wisker(attatched: circle, offSet: (float)Math.PI / 4f, WiskerLength: 1f);
            Wiskers[2] = new Wisker(attatched: circle, offSet: (float)Math.PI / -4f, WiskerLength: 1f);
            CircleSensor = new CircleSensor(attatched: circle, color: Color.Green, radius: circleRadius);
            PieSliceSensor = new PieSlice(circle, new Color(10, 10, 10, 50), 1f);
        }