If the ellipse doesn't have to rotate, then it should be quite straightforward, like say it was a circle....
dx#=px#-cx#
dy#=py#-cy#
d#=sqrt((dx#*dx#)+(dy#*dy#))
So you would check d# with the radius, if its less than then px#,py# is inside the circle.
Now to do the same for a non rotated ellipse, you'd use a factor on the dx# and dy# values. If the ellipse is double height for example, the X radius might be 5, and the Y radius 10... so you'd pick an axis, and work out the factor for the other axis, then apply that to dx# and dy#, to adjust to make it compatible with standard square root distance checks.
rx#=5.0
ry#=10.0
dx#=(px#-cx#)*(ry#/rx#)
dy#=(py#-cy#)
d#=sqrt((dx#*dx#)+(dy#*dy#))
I'm guessing, but I think you'd only have to adjust 1 axis, as it's a factor based on the other axis, so in this test the X difference is multiplied by 2, =10.0/5.0, or radius y / radius x... a collision would be detected when d# is less than ry# (10.0), as the X difference is adjusted based on the Y radius.
If the ellipse has to rotate, then I'd back away slowly from the math, and use Box2D instead.
The code is dark and full of errors