【发布时间】:2016-12-11 19:26:37
【问题描述】:
我有两个节点,播放器和平台。两者周围都有一个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))
我希望节点表现得像一个实体对象,因为当玩家移动时它们不会相互重叠。还有一种我可以使用的替代方法。我真的不喜欢和物理打交道。
【问题讨论】:
-
那么你当前的代码会发生什么?
-
尝试在
didMove中设置view.showsPhysics = true以显示场景中物理实体的轮廓。 -
谢谢!显然physicsBody 不遵守anchorPoint 的变化。 @0x141E
-
@CindySmith 您是否尝试过为您的平台使用 SKPhysicsBody init(edgeLoopFrom rect: platform.frame) ?
-
@AlessandroOrnano 是的。我通过改变锚点解决了它。
标签: sprite-kit swift2 game-physics skphysicsbody