Ios SpriteKit实心块

Ios SpriteKit实心块,ios,sprite-kit,Ios,Sprite Kit,我试着做一个坚实的平台/木块,如果玩家在上面落地,它就站在那里。我使用了碰撞,但似乎有一种更简单的方法 我想要的是一种效果,玩家可以“落地”在方块上,而不是通过它 if (firstBody.categoryBitMask == playerCategory && secondBody.categoryBitMask == endPlatformCategory) { if (player.position.y > secondBody.node.position

我试着做一个坚实的平台/木块,如果玩家在上面落地,它就站在那里。我使用了碰撞,但似乎有一种更简单的方法

我想要的是一种效果,玩家可以“落地”在方块上,而不是通过它

 if (firstBody.categoryBitMask == playerCategory && secondBody.categoryBitMask == endPlatformCategory) {
    if (player.position.y > secondBody.node.position.y) {
        player.physicsBody.velocity = CGVectorMake(player.physicsBody.velocity.dx, abs(player.physicsBody.velocity.dy*.5));
    }
}

但是,由于重力的原因,此代码会使其在几次点击后返回。

如果我理解正确,请尝试将玩家的physicsBody.collisionBitMask设置为与块交互。大概是这样的:

self.physicsBody.collisionBitMask = CNPhysicsCategoryBlock;
和块的physicsBody.collisionBitMask与播放器交互

self.physicsBody.collisionBitMask = CNPhysicsCategoryPlayer;

根据您的简要描述,不确定您的确切问题是什么。如果重力是一个问题,您是否尝试过设置self.physicsBody.affectedByGravity=NO@sangony我想要的是一种效果,玩家可以在被重力拉下来后“降落”在方块上,而不是穿过方块。有点像地板。看看tmx地图。