didBeginContact lädt einfach nicht?!

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • didBeginContact lädt einfach nicht?!

    Hey zusammen,

    ich teste gerade ein bisschen das SpriteKit und allgemein das Spieleentwicklen mit Swift.

    Alles läuft eigentlich ganz gut bis ich bei dem Punkt Kollisionen angekommen bin.

    Nachdem ich jetzt mehrere Stunden (mal wieder) das Netz durchsucht habe und immer nur auf die gleichen Antworten oder Hilfestellungen gestoßen bin,
    hoffe ich bei euch Hilfe zu finden, die mich weiterbringt.

    Es geht darum, das die didBeginContact Methode nicht aufgerufen wird, obwohl die Objekte richtig kollidieren. ;(

    Heißt alles was ich bisher so zusammengebaut habe läuft einwandfrei, aber am wichtigsten Punkt scheitert das ganze jetzt irgendwie.

    Die Standard Infos bei Stackoverflow und Co. habe ich versucht:

    Quellcode

    1. let ballCategory: UInt32 = 0x1 << 0
    2. let wallCategory: UInt32 = 0x1 << 1




    Physics des Balls

    Quellcode

    1. init() {
    2. let size = CGSize(width: 32, height: 44)
    3. loadPhysicsBodyWithSize(size: size)
    4. }
    5. func loadPhysicsBodyWithSize(size: CGSize){
    6. physicsBody = SKPhysicsBody(rectangleOf: size)
    7. physicsBody?.categoryBitMask = ballCategory
    8. physicsBody?.contactTestBitMask = wallCategory
    9. physicsBody?.affectedByGravity = false
    10. }
    Alles anzeigen

    Physics der Wall

    Quellcode

    1. init() {
    2. let size = CGSize(width: 32, height: 44)
    3. loadPhysicsBodyWithSize(size: size)
    4. }
    5. func loadPhysicsBodyWithSize(size: CGSize){
    6. physicsBody = SKPhysicsBody(rectangleOf: size)
    7. physicsBody?.categoryBitMask = wallCategory
    8. physicsBody?.affectedByGravity = false
    9. }

    GameScene

    Quellcode

    1. class GameScene: SKScene, SKPhysicsContactDelegate {
    2. ...
    3. override func didMove(to view: SKView) {
    4. physicsWorld.contactDelegate = self
    5. }
    6. func didBeginContact(contact: SKPhysicsContact){
    7. print("didBeginContact called")
    8. //gameOver()
    9. }
    10. }
    Das was mir einfach nicht einleuchtet ist, dass die Collision an sich funktioniert, also wenn der Ball auf die Wall trifft, kippen beide Elemente um,
    aber das Wichtigste, also der Aufruf, dass die beiden sich getroffen haben, funktioniert einfach nicht :?:

    Hat jemand eine Idee?

    Ich hatte mir auch bereits einige Tutorials angesehen und den Code dann genau eins zu eins (bis auf die Änderungen von Swift 2 zu Swift 3) übernommen, tja ohne Erfolg.
    Alles läuft einwandfrei nur die didBeginContact bleibt stumm.

    Kann das vielleicht mit Xcode 8 / Swift 3 zusammenhängen? Denn in keinem der Tutorials oder Stackoverflow Hilfestellungen
    wird Xcode 8 und / oder Swift 3 verwendet.

    Ich hoffe sehr, dass jemand von euch damit Erfahrung hat und mir weiterhelfen kann!

    Ich danke euch !