override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
let touchLocation = touch!.location(in: self)
if continueButton.contains(touchLocation) {
scene?.view?.isPaused = false
pauseMenu.removeFromParent()
self.addChild(pauseButton)
self.addChild(upButton)
continueButton.removeFromParent()
}
}
[続行]ボタンでタッチが終了すると、スレッド1:シグナルSIGABRTエラーが発生します。私が見つけたことは、スプライト(continueボタン)をタッチして終了すると、ボタンが削除されないと宣言した場合ですが、continueボタンスプライトを関数の外に宣言すると、continueボタンが削除されます。スレッド1エラーを示すクラッシュします。どのように私はクラッシュを停止することができます上の任意のアイデア?SpriteKit一時停止再開エラー
class GameScene: SKScene {
var mainturret = SKSpriteNode(imageNamed: "Main Turret")
var pauseButton = SKSpriteNode(imageNamed: "Pause Simbol")
var angleToShoot = 0
var touchIsOn = 0
var pointTwoSecondInterval = 0
let pauseMenu = SKSpriteNode(imageNamed: "Paused")
var zombieSpawningTimer = Timer()
var upButton = SKSpriteNode(imageNamed: "Up Button")
let downButton = SKSpriteNode(imageNamed: "Down Button")
let popUpMenu = SKSpriteNode(imageNamed: "TurretSpot")
var continueButton = SKSpriteNode(imageNamed: "Continue")
...}
ボタンは(関数外)で宣言されている場所です
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
エラーコードの3行目に起こります。 これはコンピュータが教えてくれるものです。
2017年6月30日07:32:26.053429から0600ナイト[4635:1030550]生き残るアプリを終了* キャッチされない例外により 'NSInvalidArgumentException' に、理由:SKNodeを追加する」Attempedをどの {0} {0、-254} スケール:{0.57,0.57}サイズ:{56.800003051757812,56.800003051757812} テクスチャ:['上ボタン'(200 x 200)]位置:{0、-254} スケール:{0.57,0.57}アンカー:{0.5、0.5}ローテーション:0.00' *まずスローコールスタック(0x188da6fd8 0x187808538 0x188da6f20 0x1984f1738 0x1984f1664 0x100073d40 0x100074908 0x1984d7050 0x18ef0a46c 0x18のef05804 0x18eed6418 0x18f6cff64 0x18f6ca6c0 0x18f6caaec 0x188d55424 0x188d54d94 0x188d529a0 0x188c82d94 0x18a6ec074 0x18ef3b130 0x100078c5c 0x187c9159c)のlibC++ abi.dylib: は、あなたが子供の頃に二回
upButton
を追加しているので、理由があるタイプNSException
コードを追加する必要があります。ボタンの1つが存在せず、nilとして読み取られています。 – Knight0fDragon
コードにコンテキストを追加して、変数が宣言されている場所を示しました。これは、私の問題の原因。これが十分であることを願って:) –
待って、シーンキットを使用していますか? – Knight0fDragon