如何检测2个SKSpriteNodes之间的联系。 Swift,Sprite套件

时间:2015-04-03 01:23:17

标签: swift

我使用Sprite Kit和Swift在xcode中创建了这个游戏,我试图弄清楚当英雄与墙壁接触时我是如何检测到的。到目前为止,这是我的代码。但是当我做SKPhysicsBody时,我似乎无法找到碰撞。

类GameScene:SKScene {

var movingGround: TFMovingGround!
var hero: TFHero!
var isStarted = false
var wallGenerator: TFWallGenerator!

override func didMoveToView(view: SKView) {
    backgroundColor = UIColor(red: 159.0/255.0, green:201.00/255.0, blue:244.0/255.0, alpha:1.0)

    movingGround = TFMovingGround(size:CGSizeMake(view.frame.width, kMLGroundHeight))
    movingGround.position = CGPointMake(0, view.frame.size.height/2)
    addChild(movingGround)

    hero = TFHero()
    hero.position = CGPointMake(70,movingGround.position.y + movingGround.frame.size.height/2 + hero.frame.size.height/2)

    addChild(hero)
    hero.breath()

    //Add WallGenerator
    wallGenerator = TFWallGenerator(color: UIColor.clearColor(), size: view.frame.size)
    wallGenerator.position = view.center
    addChild(wallGenerator)


}

}

这是我在GameScene中的代码。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

一个困难的方法是获取HeroSprite的框架并获取WallsSprite的框架并查看它们是否重叠,使用

CGRectIntersectsRect(rect1,rect2)

并持续这样做。

更好的解决方案是使用碰撞检测。有一个很好的tutorial here