swift physicsbody与图像大小不匹配

时间:2016-12-11 19:26:37

标签: sprite-kit swift2 game-physics skphysicsbody

我有两个节点,播放器和平台。两者都有物理身体。我的播放器仍然是,平台滚动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))

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

1 个答案:

答案 0 :(得分:0)

使用物理学的另一种方法是使用最近添加到iOS 10 SKTilemapNode来创建背景。每个图块可以用数据标记以指示图块是否被磨削。然后,您将关注玩家相对于瓷砖的移动方式。目前没有很多示例可以证明这一点,WWDC 2016: What's new in SpriteKit简要介绍了这一点。其他资源包括一个top down示例,该示例至少显示了如何构建背景tilemap,以及一些background info为什么物理引擎不能为平台游戏提供最佳体验。 Kenney's是平台艺术品瓷砖的良好来源。