public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; m_GenericTextures = new Texture2D[8]; m_ExplosionTextures = new Texture2D[81]; m_DemonstrationLineHitbox = new LineSegment(new Vector2(), new Vector2()); m_GenericHitbox = new Engine.Hitbox(new LineSegment[] { new LineSegment(new Vector2(32, -3), new Vector2(32, 64)), new LineSegment(new Vector2(10, 32), new Vector2(54, 32)), new LineSegment(new Vector2(8, 0), new Vector2(56, 0)) }); EntityA = new GenericEntityWithHitbox(m_GenericTextures, new Vector2(300, 200), new Vector2(100, 100), new Vector2(1000, 0), m_GenericHitbox, 0, 2000, false); EntityB = new GenericEntityWithHitbox(m_GenericTextures, new Vector2(100, 300), new Vector2(32, 32), new Vector2(0, 0), m_GenericHitbox, 0, 3000, true); }
public bool DetectCollisionHitboxHitbox(Hitbox HitboxToCheck, Vector2 HitboxToCheckPosition, Vector2 ThisPosition) { bool ret = false; LineSegment[] seg = HitboxToCheck.FullHitbox; LineSegment toCheck = new LineSegment(new Vector2(), new Vector2()); int i = seg.Length - 1; while (i >= 0 && !ret) { ret = DetectCollisionSegmentHitbox(toCheck.Set(seg[i].Start + HitboxToCheckPosition, seg[i].End + HitboxToCheckPosition), ThisPosition); i--; } return(ret); }
public bool CheckIfHit(Hitbox HitboxToCheck, Vector2 HitboxPosition) { return(m_Hitbox.DetectCollisionHitboxHitbox(HitboxToCheck, HitboxPosition, Position)); }
public GenericEntityWithHitbox(Texture2D[] EntityTextures, Vector2 StartPosition, Vector2 Size, Vector2 StartVelocity, Hitbox HB, double AnimationTimerStart = 0.0, double AnimationTimerDuration = 1000.0 /*millisecondes*/, bool AnimationLoop = true) : base(EntityTextures, StartPosition, Size, StartVelocity, AnimationTimerStart, AnimationTimerDuration, AnimationLoop) { m_Hitbox = HB; }