2017-01-02 41 views
2

我正在制作另一个Swift游戏。地板是沙漠。 这个地板是基于它的图像纹理的物理体(sprite kit)。 我想知道基于特定x点的楼层高度(例如屏幕中间)。 如果我使用floor.size.height,它会获得像它是矩形的高度(换句话说,最大高度可能)。 我想让这个Y点让玩家在物理体上移动。从x点快速获取图像高度

任何人都可以帮忙吗?

enter image description here

回答

1

你有没有这个必要。仅仅因为你使用的是物理,它只是说明与isDynamic = false地板和球员isDynamic = true和其它参数,例如:

enum CollisionTypes: UInt32 { 
    case player1 = 1 
    case player2 = 2 
    case floor = 4 
} 

floor.physicsBody?.categoryBitMask = CollisionTypes.floor.rawValue 
floor.physicsBody?.contactTestBitMask = CollisionTypes.player.rawValue 
floor.physicsBody?.collisionBitMask = 0 

player1.physicsBody?.categoryBitMask = CollisionTypes.player1.rawValue 
player1.physicsBody?.contactTestBitMask = CollisionTypes.floor.rawValue 
player1.physicsBody?.collisionBitMask = CollisionTypes.floor.rawValue 

这仅仅是一个点开始所以希望它可以帮助你。

+0

实际上物理效果也很好,作为联系人处理... 地板是稳定的动态虚假和玩家正在与动态真实... 但如果我使用这个:player.run(SKAction.moveBy( x:10,y:0,持续时间:0))玩家可能会在上坡时移动到地板 –

+0

如果您不想意外的行为,则不应该使用SKAction.move..with物理。而是使用applyImpulse或改变你的精灵速度。 –

+0

好的提示!谢谢! –