Есть ли лучший способ создать эффект размытия? Похоже, то, как я сейчас это делаю, создает проблемы с FPS, особенно на старых телефонах. Похоже, что чем выше BlurAmount, тем ниже FPS. Может ли здесь быть причиной blendMode?
if effectsNode.parent == nil {
let filter = CIFilter(name: "CIGaussianBlur")
let blurAmount = 15.0
filter!.setValue(blurAmount, forKey: kCIInputRadiusKey)
effectsNode.filter = filter
effectsNode.blendMode = .add
sceneContent.removeFromParent()
effectsNode.addChild(sceneContent)
addChild(effectsNode)
}
Когда я приостанавливаю свою игру, я вызываю blurScreen(), который выполняет следующий код выше. Тем не менее, кажется, что мой fps со временем падает, чем дольше игра стоит на паузе. Я попытался отключить blurScreen(), и проблемы с FPS исчезли. Как со временем падает FPS, когда blurScreen() вызывается только один раз?
РЕДАКТИРОВАТЬ:
func pauseGame() {
sceneContent.isPaused = true
intermission = true
physicsWorld.speed = 0
blurScreen()
}
Вот код в touchesEnded()
// Tapped pause or pause menu options
if name == "pause" && touch.tapCount == 1 && pauseSprite.alpha == 1.0 && ((!sceneContent.isPaused && !GameData.shared.midNewDay) || (!sceneContent.isPaused && sceneElements[0].editingMode)) {
SKTAudio.sharedInstance.pauseBackgroundMusic()
SKTAudio.sharedInstance.playSoundEffect("Sounds/pause.wav")
pauseSprite.run(SKAction.sequence([SKAction.scale(to: 1.2, duration: 0.10), SKAction.scale(to: 1.0, duration: 0.10)])) { [unowned self] in
self.createPauseMenu()
self.pauseGame()
}
return
}
Метод обновления
override func update(_ currentTime: TimeInterval) {
if GameData.shared.firstTimePlaying && GameData.shared.distanceMoved > 600 && !step1Complete {
tutorial2()
}
// Check for game over
if GameData.shared.hearts == 0 && !gameEnded {
gameOver()
}
// If we're in intermission, do nothing
if intermission || sceneContent.isPaused {
return
}
// some more stuff unrelated to pausing
}
DispatchQueue.global(qos:.background).async{...do code ... DispatchQueue.main.async{..do stuff needed on main thread}}
- person Knight0fDragon   schedule 27.10.2017