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
setzendatBoi.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")
}
}