Я пытаюсь получить «Блок», чтобы столкнуться с «землей» вместо блока, проходящего через землю и исчезающего!Xcode Swift Game (Проблема с коллизиями)
Вот мой код для блока
hero = CSHero()
hero.position = CGPointMake(70, movingGround.position.y + movingGround.frame.size.height/2 + hero.frame.size.height/2)
hero.physicsBody = SKPhysicsBody(rectangleOfSize: hero.size)
hero.physicsBody?.dynamic = true
hero.physicsBody?.contactTestBitMask = heroCategory | groundCategory
hero.physicsBody?.collisionBitMask = heroCategory | groundCategory
addChild(hero)
Вот мой код для Ground
let ground1 = SKSpriteNode(color: UIColor.blackColor(), size: CGSizeMake(view.frame.size.width, 15))
ground1.position = view.center
ground1.physicsBody = SKPhysicsBody(rectangleOfSize: ground1.size)
ground1.physicsBody!.dynamic = false
ground1.physicsBody!.contactTestBitMask = groundCategory | heroCategory
ground1.physicsBody!.collisionBitMask = groundCategory | heroCategory
addChild(ground1)
Каждый раз, когда я запускаю это блок просто исчезает, если у меня есть динамическое значение ИСТИНА.
Любая помощь?
Спасибо! Это сработало :) У меня есть одна проблема, хотя он остается на «земле» сейчас, но он находится все влево от экрана! Я едва вижу его, как показывает 1/8 его тела. Я попытался изменить его положение, но он просто телепортируется влево от экрана, когда я это делаю! Любые предложения? :) –
Это происходит, когда Dynamic установлен в true, но мне нужно, чтобы Dynamic был установлен в true, чтобы блок мог столкнуться с другими статическими блоками. –
Awesome! Если это сработало, примите ответ :) И если вы хотите, чтобы он столкнулся с другими статическими блоками, то просто обновите collisionBitMask до битовой маски статических блоков! –