当我调用我的didbegincontact
函数时,此函数应该通过增加宽度来增加我的蛇的大小。但是当联系人发出联系时,它会调用该功能一次,然后再也不会再调用它。我不知道为什么,当接触时不保留通过增量在swift中调用函数时出现问题
func increaseSnakeSize(increment: CGFloat){
snake.snake1.size = CGSizeMake(snake.size.width + increment, snake.size.height + increment)
snake.snake2.size = CGSizeMake(snake.size.width + increment, snake.size.height + increment)
snake.snake3.size = CGSizeMake(snake.size.width + increment, snake.size.height + increment)
print(snake.snake1.size)
}
// didBeginContact
if (firstBody.categoryBitMask & physicsCategory.snakeCategory == 0b1) && (secondBody.categoryBitMask & physicsCategory.foodCategory == 0b10){
score++
scoreLabel.text = "\(score)"
food.removeFromParent()
addFood()
increaseSnakeSize(2)
}
你可以更清楚地说明你的问题。 'increaseSnakeSize'只需调用一个,大小是否增加?下一次它不会打电话? –
除非您对第一个和第二个物体进行了排序(按categoryBitMask),否则您需要检查firstBody是否是食物,secondBody是否是蛇。 – 0x141E
更改精灵的大小不会更改其物理主体的大小。每当蛇长大时,您都需要创建一个新的更大的物理体。 – 0x141E