ゲームを作成しようとしていますが、再起動ボタンを押すとゲームシーンに切り替わるときに、このゲームシーンが正しく読み込まれません。それはエラーを返すでしょう:スレッド1 exc_bad_instruction(コード= exc_i386_invopサブコード= 0x0)。ゲーム全体が最初からうまくいきます(私がまだ死んでいない場合)が、私が死ぬと、私は再起動ボタンで別のシーンに行きます、そして、この再開ボタンが押されると、私は再びゲームに行くでしょう。私も右の背景を取得することはできませんなどシーン切り替えエラー
コード:
はゲームシーン(この部分でエラーが発生します)。これは、再起動のシーンです
func enemySpawn() {
let enemy = SKSpriteNode(imageNamed: "Enemy")
let minValue = self.size.width/8
let maxValue = self.size.width - 150
let spawnPoint = UInt32(maxValue - minValue) // HERE IS THE ERROR
enemy.position = CGPoint(x: CGFloat(arc4random_uniform(spawnPoint)), y: self.size.height)
enemy.physicsBody = SKPhysicsBody(rectangleOf: enemy.size)
enemy.physicsBody?.affectedByGravity = false
enemy.physicsBody?.categoryBitMask = physicsCatagory.enemy
enemy.physicsBody?.contactTestBitMask = physicsCatagory.bullet
enemy.physicsBody?.isDynamic = true
let action = SKAction.moveTo(y: -70, duration: TimeInterval(enemyMoveSpeed))
let actionDone = SKAction.removeFromParent()
enemy.run(SKAction.sequence([action, actionDone]))
self.addChild(enemy)
}
:
var restartButton : UIButton!
override func didMove(to view: SKView) {
scene?.backgroundColor = UIColor.white
restartButton = UIButton(frame: CGRect(x: 0, y: 0, width: view.frame.size.width/3, height: 30))
restartButton.center = CGPoint(x: view.frame.size.width/2, y: view.frame.size.height/7)
restartButton.setTitle("Play Again", for: UIControlState.normal)
restartButton.setTitleColor(UIColor.black, for: UIControlState.normal)
restartButton.addTarget(self, action: #selector(StartViewController.restart), for: UIControlEvents.touchUpInside)
self.view?.addSubview(restartButton)
}
func restart() {
self.view?.presentScene(GameScene(), transition: SKTransition.crossFade(withDuration: 0.3))
restartButton.removeFromSuperview()
}
誰かが私を助けてくれることを願っています! ありがとう!私が代わりにデフォルトコンストラクタの、GameSceneにサイズを渡す
let nextScene = GameScene(size: self.scene.size)
nextScene.scaleMode = SKSceneScaleMode.AspectFill
self.view?.presentScene(nextScene, transition: transition)
...
実際のデバイスで同じ問題が発生しましたか? – siarheibrazil
7日間で最大10個のアプリID制限に達したため、今すぐテストできません。 –