gpt4 book ai didi

sprite-kit - 如何让 Spritekit 节点相互反弹

转载 作者:行者123 更新时间:2023-12-01 12:39:34 24 4
gpt4 key购买 nike

我知道如何设置物理属性,但我不知道我需要什么代码才能使它们真实地相互反弹,就像台球 table 上的球一样。我已经准备好了 didBeginContact 方法,

-(void)didBeginContact:(SKPhysicsContact*)contact
{
uint32_t collision = (contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask);
if (collision == (gearCategory | gear1Category)) {
[
}
}

但我不知道我需要什么代码,任何具有良好数学和矢量技能的人都可以帮助我吗?

最佳答案

这是 Sprite 套件中的一项非常简单的任务。

//Add to top of scene
static const uint32_t spriteCategory = 0x1 << 0;

//declare when creating sprite
sprite.physicsBody.categoryBitMask = spriteCategory;
sprite.physicsBody.collisionBitMask = spriteCategory;

这样做是设置一个 Sprite 与所有 Sprite 发生碰撞,将 spriteCategory 作为它们的 categoryBitMask。您可以使用以下代码将 Sprite 设置为与多个不同的 categoryBitMask 发生碰撞。
sprite.physicsBody.collisionBitMask = spriteCategory|otherCategory|anotherCategory;

Did begin contact 用于在节点接触时执行一些代码。您将使用 contactTestBitMask 属性来检测项目何时接触。碰撞位掩码自动为你处理碰撞!!!

我附上了一个链接,其中有一整节专门讨论碰撞和接触。

http://www.raywenderlich.com/42699/spritekit-tutorial-for-beginners

关于sprite-kit - 如何让 Spritekit 节点相互反弹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26243428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com