jjzjj

categoryBitMask

全部标签

ios - SpriteKit - 使某些 SpriteNodes 在不禁用其物理体的情况下不会发生碰撞

我在屏幕上有4个SpriteNode,我不希望它们相互弹开,而是相互流过,同时保持与某些SpriteNode和屏幕框架的碰撞。我已经为所有这些声明了类别:letBCategory:UInt32=0x1还添加了位掩码:b.physicsBody!.categoryBitMask=BCategoryb2.physicsBody!.categoryBitMask=B2Categoryb3.physicsBody!.categoryBitMask=B3Categoryb4.physicsBody!.categoryBitMask=B4Categoryp.physicsBody!.categor

swift - SpriteKit 中 "eat"的最佳方法

我所说的“吃”是指:当SpriteA(马里奥)与SpriteB(一枚硬币)发生碰撞时,会检测到碰撞并将硬币从场景中移除;然而,马里奥的运动并没有因为与硬币的碰撞而改变。目前我正在使用SKPhysicsContactDelegate来记录马里奥和硬币碰撞的时间,但这似乎需要将硬币确认为一个物理实体-因此这意味着马里奥的运动会被它停止.硬币不应该有物理体,而是我应该用不同的方法看它们是否接触? 最佳答案 根据Apple...varcategoryBitMask:UInt32Amaskthatdefineswhichcategoriest

Swift SpriteKit 创建一个只有三个边可以通过的边框

我正在尝试创建一个用户通过投球来玩的游戏。我希望球从顶部边界和侧面边界反弹。球最初放置在底部边界,当用户触摸一个点时,球会朝那个方向移动并从边界弹回。但是,我希望球在再次触及底部边界后停止,而不是从底部边界弹开。我已经做到了,所以球会从所有边界反弹,但我希望它只从顶部和侧面反弹。如果这段代码不足以做出正确的回应,我深表歉意;我是这个论坛的新手:)letborder=SKPhysicsBody(edgeLoopFrom:self.frame)//createvariablerepresentingframeofgamesceneborder.friction=0border.restit

objective-c - SKPhysicsContact 有什么方法可以确定哪个物体是 A 和 B?

在SpriteKit中,我们在didBeginContact方法中检测到。但是做这样的事情看起来有点愚蠢:funcdidBeginContact(联系人:SKPhysicsContact){ifletcontactA=contact.bodyA.node?.name{ifletcontactB=contact.bodyB.node?.name{//nowthatwehavesafelyunwrappedthesenodes,wecanoperateonthemifcontactA=="ball"{collisionBetweenBall(contact.bodyA.node!,obje

ios - 检测 Sprite 套件中的碰撞

我正在尝试使用sprite工具包制作一款简单的游戏。基本思想是有一个玩家可以跳跃来避开障碍物。但是我有一个问题,我不知道如何做到这一点,即当玩家击中方block时,玩家消失并且开始播放血液动画。首先,我不明白我在苹果网站上找到的这段代码的作用。staticconstuint32_tblockCategory=0x1我正在调用didBeginContact函数并在其中放置一个NSLOG("didcallfunction")。但是我从未在调试器中收到输出。这是我的_player和_block代码:-(SKSpriteNode*)字符{_player=[SKSpriteNodespriteN

ios - 检测 Sprite 套件中的碰撞

我正在尝试使用sprite工具包制作一款简单的游戏。基本思想是有一个玩家可以跳跃来避开障碍物。但是我有一个问题,我不知道如何做到这一点,即当玩家击中方block时,玩家消失并且开始播放血液动画。首先,我不明白我在苹果网站上找到的这段代码的作用。staticconstuint32_tblockCategory=0x1我正在调用didBeginContact函数并在其中放置一个NSLOG("didcallfunction")。但是我从未在调试器中收到输出。这是我的_player和_block代码:-(SKSpriteNode*)字符{_player=[SKSpriteNodespriteN
12