Ejemplo n.º 1
0
        static public Vector2f CalcColSolvePlayer(IColidable colliding, borderCollision collisionType)
        {
            Vector2f solveVect = new Vector2f(colliding.GetCollisionBox().Left, colliding.GetCollisionBox().Top);

            switch (collisionType)
            {
            case borderCollision.Down:
                solveVect = new Vector2f(colliding.GetCollisionBox().Left, WindowData.windowSize.Y - colliding.GetCollisionBox().Height);
                break;

            case borderCollision.Up:
                solveVect = new Vector2f(colliding.GetCollisionBox().Left, -topOffset * WindowData.windowSize.Y);
                break;

            case borderCollision.Left:
                solveVect = new Vector2f(0, colliding.GetCollisionBox().Top);
                break;

            case borderCollision.Right:
                solveVect = new Vector2f(WindowData.windowSize.X - colliding.GetCollisionBox().Width, colliding.GetCollisionBox().Top);
                break;
            }

            return(solveVect);
        }
Ejemplo n.º 2
0
        static public borderCollision CheckBorderCollision(IColidable colidable)
        {
            if (colidable.GetCollisionBox().Left <= 0)
            {
                return(borderCollision.Left);
            }
            if (colidable.GetCollisionBox().Left + colidable.GetCollisionBox().Width >= WindowData.windowSize.X)
            {
                return(borderCollision.Right);
            }
            if (colidable is Player)
            {
                if (colidable.GetCollisionBox().Top <= WindowData.windowSize.Y * topOffset)//Let's add a little bit of padding (20% of the screen) so the players have chance to react
                {
                    return(borderCollision.Up);
                }
                if (colidable.GetCollisionBox().Top + colidable.GetCollisionBox().Height >= WindowData.windowSize.Y)
                {
                    return(borderCollision.Down);
                }
            }
            else if (colidable is IEnemy)
            {
                if (colidable.GetCollisionBox().Top + colidable.GetCollisionBox().Height > WindowData.windowSize.Y)
                {
                    return(borderCollision.Down);
                }
            }


            return(borderCollision.None);
        }
Ejemplo n.º 3
0
        public void update( IColidable body, IRenderable renderer )
        {
            // Start Update.

            if( body.hasCollided && !( (AnimationComponent) renderer ).isRunning )
            {

            }
        }
Ejemplo n.º 4
0
 static public bool CheckCollision(IColidable first, IColidable second)
 {
     return(first.GetCollisionBox().Intersects(second.GetCollisionBox()));
 }