예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
 public bool CheckIfHit(Hitbox HitboxToCheck, Vector2 HitboxPosition)
 {
     return(m_Hitbox.DetectCollisionHitboxHitbox(HitboxToCheck, HitboxPosition, Position));
 }
예제 #4
0
 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;
 }