SKSprite
PhysicsBody
是否有可能计算出不同的碰撞状态,具体取决于它与另一个身体接触的位置?例如,如果蓝色球与另一个物体的侧面接触,则变为绿色;如果蓝色球触及另一个物体的底部,则变为黄色。
答案 0 :(得分:1)
好像现在我还没有找到任何能够回答你问题的具体内容,但我可以给你一个解决办法,即首先使用didBeginContact
代表来检测身体的碰撞并使用
contact.contactPoint
属性以找出联系点。
你可以做的是制定检查逻辑,使接触点位于身体下方或身体左侧,然后根据需要转动颜色。
- (void)didBeginContact:(SKPhysicsContact *)contact {
CGPoint pointOfContact= contact.contactPoint;
//this is just an example.. change the condition as per your need
if(pointOfContact.x>yourSpritePosition.frame.position.x&&pointOfContact.y>yourSpritePosition.frame.position.y){
//your color change logic
}
}
我希望这可以解决你的问题。
答案 1 :(得分:0)
你可以将你的精灵分开到子精灵,你可以为它们设置不同的逻辑。