swift physicsbody 与图像大小不匹配

swift physicsbody is not matching up to image size

我有两个节点,播放器和平台。两者都有一个 physicsBody 围绕着它们。我的播放器静止不动,平台通过 SkAction 滚动。当玩家到达平台顶部的大约一半时,它会掉落并扔掉它。

player.physicsBody=SKPhysicsBody(rectangleOf:player.frame.size)
player.physicsBody?.isDynamic=true
player.physicsBody?.allowsRotation=false
player.physicsBody?.affectedByGravity=true

platform.physicsBody=SKPhysicsBody(rectangleOf:platfrom.frame.size)
platform.physicsBody?.isDynamic=false

平台设置是。

 plat.size=CGSize(width:(self.frame.width)*2,height:(self.frame.height)/3)
 plat.anchorPoint=CGPoint(x:0,y:0)
 plat.position=CGPoint(x:0,y:0)
 plat.zPosition = 2
 addChild(platform)

我试过用这个代替,但玩家还是摔倒了

plat.physicsBody=SKPhysicsBody(rectangleOf:CGSize(width:platform.width,
height: platform.frame.height))

我希望节点像实体对象一样工作,因为当玩家移动时它们不会相互重叠。还有一种我可以使用的替代方法。我真的不喜欢研究物理。

使用物理的替代方法是使用最近添加到 iOS 10 SKTilemapNode 的内容来创建背景。每个瓷砖都可以用数据标记,以指示瓷砖是否经过研磨。然后,您将关注玩家如何相对于图块移动。目前没有太多示例可以展示此功能,WWDC 2016: What's new in SpriteKit shows this briefly. Other resources include a top down example which shows at least how to build the background tilemap and some background info on why physics engines don't provide the best experience for platformers. Kenney's 是平台游戏图块的良好来源。