Я хочу уменьшить значение с течением времени внутри функции touchesBegan
после ее вызова. Я создал функцию для этого значения (updateJumpMotion). Эта функция работает (протестирована).Уменьшить целое число во времени во время касанияBegan function
Однако, так как он называется только один раз, пока контакт не закончился, он только уменьшается один раз (должен увеличиваться во время всего касания, не только один раз).
Как уменьшить целое число во времени внутри функции touchesBegan
?
Это мой touchesBegan
код и моя функция для уменьшения целого:
override func update(currentTime: NSTimeInterval) {
// Character
updateCharacterPosition()
updateJumpMotion()
}
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
var timer = NSTimer.scheduledTimerWithTimeInterval(0.02, target: self, selector: Selector("updateJumpMotion"), userInfo: nil, repeats: true)
if onGround && !gameOver {
if self.initialJumpY == nil {
self.initialJumpY = self.character.position.y
}
if self.character.position.y - self.initialJumpY! < 175 {
self.character.physicsBody?.applyImpulse(CGVectorMake(0, self.jumpVelocity))
}
}
self.onGround = false
}
func updateJumpMotion() {
if onGround {
self.frameCounterY = 0
self.negativeVelocity = 0
} else {
self.frameCounterY = self.frameCounterY + 0.15
self.negativeVelocity = CGFloat(self.frameCounterY * self.frameCounterY)
}
self.jumpVelocity = 125 - self.negativeVelocity
}
Петля на другой нить до тех пор, – milo526
как прикосновение может начаться только один раз, это не удивительно ... вам может понадобиться настроить «NSTimer», который срабатывает, когда касания начинаются и становятся недействительными, когда коснулся законченный. – holex
@holex Я пробовал это, но без успеха до сих пор. Это вызывает большую задержку в механизме перехода. –