如何让物体移动得更远,你按下了什么?

时间:2017-08-31 01:11:20

标签: swift sprite-kit

我正在尝试创建一个程序,其中按住屏幕的时间越长,对象将移动得越高。我想这样做,你按住的时间越长,功能重复增加距离越长。但是,由于某种原因,它无法正常工作。

import SpriteKit
import GameplayKit

var calculateTimer = Timer()

var distance = 10
var choice = 1

class GameScene: SKScene, SKPhysicsContactDelegate {

var planet = SKNode()

override func didMove(to view: SKView) { // viewdidload

    let planetTexture = SKTexture(imageNamed: "mercury.jpg")

    planet = SKSpriteNode(texture: planetTexture)
    planet.position = CGPoint(x: self.frame.midX, y: self.frame.midY)

    addChild(planet)

}

func calculateDistance() {

    distance += 10

    print(distance)
    print(choice)

}

func touchDown(atPoint pos : CGPoint) {

    calculateTimer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(self.calculateDistance), userInfo: nil, repeats: true)

    print("test")

}

func touchUp(atPoint pos : CGPoint) {

    planet.physicsBody!.isDynamic = true

    //planet.physicsBody?.velocity = (CGVector(dx: 0, dy: 0))

    planet.physicsBody!.applyImpulse(CGVector(dx: 0, dy: distance))

}



override func update(_ currentTime: TimeInterval) {
    // Called before each frame is rendered
}

}

这是我的代码。如果有人有任何建议,我们将不胜感激!

1 个答案:

答案 0 :(得分:0)

在touchDown中,设置一个标志以指示触摸已开始。 在touchUp中,清除/删除标记。

设置标志时,请继续执行移动代码。