public void OnBreakableHit(BreakableBody body) { // Body.Restitution = 0; // Body.LinearVelocity *= 0;// new Vector2(0, Body.LinearVelocity.Y); return; if (Body.LinearVelocity.Length() > 3.0f) { Vector2 vel = Body.LinearVelocity; vel.Normalize(); vel *= 3.0f; Body.LinearVelocity = vel; } }
public void AfterBreakableHit(BreakableBody body) { // Body.Restitution = 0; // Body.LinearVelocity *= 0;// new Vector2(0, Body.LinearVelocity.Y); if (Body == null) { return; } if (Body.LinearVelocity.Length() > 3.0f) { Vector2 vel = Body.LinearVelocity; vel.Normalize(); vel *= 3.0f; Body.LinearVelocity = vel; } }
public void LoadBreakableBody(XElement elements) { List <Sprite> sprites = CreateSprites(elements); List <JabActor> bodies = new List <JabActor>(); for (int i = 0; i < sprites.Count; i++) { sprites[i].Width = 20; sprites[i].Height = 100; JabActor act = World.CreateBox(sprites[i].Dimension * sprites[i].Scale, sprites[i].Position, JabActor.BodyType.DYNAMIC); act.Rot = sprites[i].Rot; bodies.Add(act); } // LoadBreakableBodies(elements); for (int i = 0; i < sprites.Count; i++) { string name = (sprites[i]).CurrentFrame; BreakableBody s = null; if (name == "wood") { s = new BreakableBody(BreakableBody.BodyMaterial.WOOD, this); } else if (name == "cement") { s = new BreakableBody(BreakableBody.BodyMaterial.CONCRETE, this); } else if (name == "glass") { s = new BreakableBody(BreakableBody.BodyMaterial.GLASS, this); } s.World = World; s.Body = bodies[i]; s.Sprite = sprites[i]; s.Initialize(Content); AddNode(s); } }
public void OnBreakableDestroyed(BreakableBody body) {/* * if (body.Material == BreakableBody.BodyMaterial.GLASS) * { * Body.LinearVelocity *= 0.8f; * } * else * Body.LinearVelocity *= 0.2f;*/ if (Body == null) { return; } if (Body.LinearVelocity.Length() > 5.0f) { Vector2 vel = Body.LinearVelocity; float speed = Body.LinearVelocity.Length(); speed *= 0.7f; vel.Normalize(); Body.LinearVelocity = vel * speed; } }
public void LoadBreakableBody(XElement elements) { List<Sprite> sprites = CreateSprites(elements); List<JabActor> bodies = new List<JabActor>(); for (int i = 0; i < sprites.Count; i++) { sprites[i].Width = 20; sprites[i].Height = 100; JabActor act = World.CreateBox(sprites[i].Dimension * sprites[i].Scale, sprites[i].Position, JabActor.BodyType.DYNAMIC); act.Rot = sprites[i].Rot; bodies.Add(act); } // LoadBreakableBodies(elements); for (int i = 0; i < sprites.Count; i++) { string name = (sprites[i]).CurrentFrame; BreakableBody s = null; if (name == "wood") s = new BreakableBody(BreakableBody.BodyMaterial.WOOD, this); else if (name == "cement") s = new BreakableBody(BreakableBody.BodyMaterial.CONCRETE, this); else if (name == "glass") s = new BreakableBody(BreakableBody.BodyMaterial.GLASS, this); s.World = World; s.Body = bodies[i]; s.Sprite = sprites[i]; s.Initialize(Content); AddNode(s); } }
public void OnBreakableDestroyed(BreakableBody body) { /* if (body.Material == BreakableBody.BodyMaterial.GLASS) { Body.LinearVelocity *= 0.8f; } else Body.LinearVelocity *= 0.2f;*/ if (Body == null) { return; } if (Body.LinearVelocity.Length() > 5.0f) { Vector2 vel = Body.LinearVelocity; float speed = Body.LinearVelocity.Length(); speed *= 0.7f; vel.Normalize(); Body.LinearVelocity = vel * speed; } }
public Splinter(BreakableBody.BodyMaterial material) : base("break") { bodyMaterial = material; }
bool HitSoundPlaying(BreakableBody.BodyMaterial material) { for (int i = 0; i < hitSounds.Count; i++) { if (hitSounds[i].material == material) { return true; } } return false; }
public BreakableHit(BreakableBody.BodyMaterial sender) : base(sender) { }
public BreakableDestroyed(BreakableBody.BodyMaterial sender) { Broken = sender; }