我使用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中的代码。
非常感谢任何帮助。
答案 0 :(得分:0)
一个困难的方法是获取HeroSprite的框架并获取WallsSprite的框架并查看它们是否重叠,使用
CGRectIntersectsRect(rect1,rect2)
并持续这样做。
更好的解决方案是使用碰撞检测。有一个很好的tutorial here。