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; }
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); }