2016-11-19 1 views
0

Ich versuche, einen flappy Vogel von einem youtube Video ( ) ähnlich zu bilden und es wurde in swift 2 gebildet. Ich versuche, dies in zu tun swift 3. Alles lief reibungslos, bis ich die Touch-Start-Funktion erreichte.Physikkörper meines Gegenstandes springt nicht, als Berührung anfing, geklickt wird

Alle bisherigen physikalischen Verhaltensweisen wirkten wie von der Schwerkraft beeinflusst. Wenn Berührung gestartet wird, passiert nichts. Ich habe getestet, ob es überhaupt funktioniert, indem ich drucke und es ist. Also versuche ich, dass mein datBoi springt, wenn er angeklickt wird. Als Hinweis hatte das Video mich

setzen
datBoi.physicsBody?.applyImpulse(CGVectorMake(0, 100)) 

aber ich ersetzt es mit dem, was ich weiß,

CGVector(dx: 0,dy: 100) 

haben, wie dies in geschickter 3.

abgelaufen zu sein scheint Jede Hilfe ist hier geschätzt ist mein Code bezüglich des datBoi-Objekts.

struct PhysicsCategory 
    { 
     static let datBoi : UInt32 = 0x1 << 1 
     static let Ground : UInt32 = 0x1 << 2 
     static let Wall : UInt32 = 0x1 << 3 
    } 

    class GameScene: SKScene 
    { 

    var Ground = SKSpriteNode() 
    var datBoi = SKSpriteNode() 

    override func didMove(to view: SKView) 
    { 
     datBoi = SKSpriteNode(imageNamed: "datboi") 
     datBoi.size = CGSize(width: 150, height: 240) 
     datBoi.position = CGPoint(x: -85, y: 0) 

     datBoi.physicsBody = SKPhysicsBody(rectangleOf: datBoi.size) 
     datBoi.physicsBody?.categoryBitMask = PhysicsCategory.datBoi 
     datBoi.physicsBody?.collisionBitMask = PhysicsCategory.Ground | PhysicsCategory.Wall 
     datBoi.physicsBody?.contactTestBitMask = PhysicsCategory.Ground | PhysicsCategory.Wall 
     datBoi.physicsBody?.affectedByGravity = true 
     datBoi.physicsBody?.isDynamic = true 
     datBoi.zPosition = 2 
     self.addChild(datBoi) 
    } 

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) 
    { 
     datBoi.physicsBody?.velocity = CGVector(dx: 0, dy: 0) 
     datBoi.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 100)) 
     print("hi") 
    } 
    } 

Antwort

0
Circle.physicsBody?.velocity = CGVector(dx: 0, dy: 0) 
    Circle.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 74)) //Also try affected by gravity to false 
Verwandte Themen