2010-04-17 4 views
2

Si j'ai un sprite, comment vérifier la collision entre deux points? Par exemple, dans un jeu que je fais, je voudrais dessiner plusieurs lignes que mon sprite heurte. Je pense que c'est plus flexible que d'autres systèmes de collision si j'avais beaucoup de plateformes.Sprite to Line Collision

Répondre

3

Une simple logique peut aider à réduire le calcul gaspillé, c'est-à-dire que si le sommet de l'image-objet est plus bas que les deux points, vous ne pouvez pas avoir de collision. Tri d'un contrôle de collision de boîte englobante simple. Une fois que vous avez fait cela, je suggère que vous obteniez une «formule» pour votre ligne, puis vérifiez lequel des coins de votre sprite se trouvait au-dessus ou en dessous de cette ligne. S'ils ne sont pas tous du même côté, vous avez une collision. Par exemple, si votre ligne était y=x/2+2, en commençant par x = -20 se terminant par x = 20 et que vous aviez un sprite carré 3 large/haut à (3, -1) alors vous avez les quatre points de votre spirite (3, -1) (3,2) (6,2) (6, -1). Vous calculez la valeur y de la ligne à ces deux positions x, ce qui vous donne y = 3.5 à x = 3 et y = 5 à x = 6 toutes ces valeurs y sont supérieures aux valeurs y du cube, donc le le cube est au-dessous de la ligne.

+0

Merci pour la réponse! – Alu

+0

Et si la ligne était droite? –

+0

Je pense que ma méthode fonctionnera toujours. Il considère essentiellement la ligne comme une boîte et vérifie si l'un des coins de l'image-objet tombe dans cette boîte que la ligne fait. C'est une méthode très grossière, mais pour une chose simple, cela fonctionnera. – thecoshman