Je fais un jeu de réaction, où vous pouvez détruire des ennemis et gagner des points, mais si les nœuds ennemis croisent le nœud des joueurs, cela réduit les vies de un. C'est un jeu de réaction donc je veux donner quelques points de tolérance dans l'intersection. Donc, s'ils se croisent, je ne veux pas voir immédiatement une réduction.CGRectIntersectsRect tolère certains points avant la réaction
Voici mon code:
if (CGRectIntersectsRect(enemy.frame, player.frame)) {
lives--;
}
Mon but est un seuil de tolérance pour l'intersection. J'espère que quelqu'un peut m'aider. (code dans l'objectif c s'il vous plaît)
Avez-vous essayé de réduire la taille de enemy.frame ou de player.frame à cette fin? Si vous les faites plus petit, le coup sera détecté "plus tard" – luk2302
si vous utilisez SpriteKit, alors je recommande fortement d'utiliser le moteur physique intégré pour les collisions, à travers 'SKPhysicsBody'. Je suis également d'accord avec luk2302, il suffit de réduire la taille du corps de la physique. – Hamish
Je ne travaillerai pas parce que j'aurais besoin d'un corps physique changeant pour mon jeu et c'est impossible. @ Luk2302 que voulez-vous dire par faire le cadre plus petit? veux-tu dire l'image? Mais ce ne serait pas ce que je cherche .. – ccdev