1. Is it because, slow to detect collision, and then refresh it to show it at screen ?
2. I don't know... we are waiting you to say.. how
when we use the panel_touch event and use the move action the response is not very accurate.
so if i will move the mouse (or my finger) fast and draw the points that the touch event returns it could look like this:
as you can see there are big gaps between the dots. in the game itself you will not notice it because i draw a sword line between the dots BUT for collision detection, i use the dots, and because the apple is too small it can be that the sword line is drawn over it but the points do not collide with its body.
how to solve it?
i set a minimum distance tolerance so if the 2 dots are too far away i add programmatically more points between them and it looks like this now:
no more gapes between the points and the collision detection is much more accurate now
+ the sword drawing is also smoother now
note: the blue points are added programmatically and the red points are returned from the touch event.
you only need to set a logical distance tolerance. if it is too low you will add many many points and each point will then perform a collision check and that may cost too much processing power so the distance of 10 pixels looks fine (for now)