- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个游戏,但出现此错误:
0_specialized _fatalerrorMessage(StaticString, StaticString, StaticString, UInt, flags : UInt32) -> Never
这是我认为崩溃的代码:
func goToCongratsScene() {
if countTouches > 5 {
let gameScene:GameScene = GameScene(size: self.size)
let transition = SKTransition.reveal(with: SKTransitionDirection.down, duration: 0)
gameScene.scaleMode = SKSceneScaleMode.aspectFill
self.view!.presentScene(gameScene, transition: transition)
}
}
The Game Scene
import UIKit
import SpriteKit
class GameScene: SKScene {
override func didMove(to view: SKView) {
backgroundColor = UIColor(red: CGFloat(248), green: CGFloat(248), blue: CGFloat(248), alpha: CGFloat(255)) //SKColor
var message = "Good Job! "
let label = SKLabelNode(fontNamed: "AppleSDGothicNeo-Bold")
label.text = message
label.fontSize = 22
label.fontColor = SKColor.blue
self.backgroundColor = SKColor.black
label.position = CGPoint(x: size.width / 2, y: size.height / 2)
addChild(label)
run(SKAction.sequence([
SKAction.wait(forDuration: 1.0),
SKAction.run(){
var scene = GameOver(size: self.size)
let skView = self.view! as SKView
skView.ignoresSiblingOrder = true
scene.scaleMode = .resizeFill
scene.size = skView.bounds.size
skView.presentScene(scene)
}
]))
}
}
最佳答案
我很难在问题中重现你的问题,所以我只是为你重写了它。这是一个简单的游戏......你在主屏幕上点击六次获胜......然后它会在 1.5 秒(你的延迟)后自动让你输
在游戏结束屏幕上,您点击以重置。
如果您在主屏幕上拖动而不是点击,您会立即迷路。
如果您需要,我很乐意为您解释任何事情。希望对您有所帮助:
import SpriteKit
// Give us some functions that we can use in all of our scenes (inheritance):
extension SKScene {
// We don't need to use `self` anywhere for now,
// because `size` and `view` are are already members of `SKScene`.
func goToGameOverScene() {
let scene = GameOver(size: size)
scene.scaleMode = .resizeFill
view!.ignoresSiblingOrder = true
view!.presentScene(scene)
}
func goToCongratsScene() {
let congratsScene = Congrats(size: size)
let transition = SKTransition.reveal(with: SKTransitionDirection.down,
duration: 0)
congratsScene.scaleMode = .aspectFill
view!.presentScene(congratsScene, transition: transition)
}
func goToGameScene() {
let gameScene = GameScene(size: size)
gameScene.scaleMode = .aspectFill
view!.presentScene(gameScene)
}
func makeLabel(text: String) {
let label = SKLabelNode(fontNamed: "AppleSDGothicNeo-Bold")
label.text = text
label.fontSize = 22
label.fontColor = SKColor.blue
label.position = CGPoint(x: size.width / 2, y: size.height / 2)
addChild(label)
}
}
class GameOver: SKScene {
override func didMove(to view: SKView) {
makeLabel(text: "Game Over!! Muahahaha!")
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
goToGameScene()
}
}
class Congrats: SKScene {
override func didMove(to view: SKView) {
backgroundColor = SKColor(red: CGFloat(248),
green: CGFloat(248),
blue: CGFloat(248),
alpha: CGFloat(255))
backgroundColor = SKColor.black // Not sure which color you wanted :)
makeLabel(text: "you won... or did you?")
run(.sequence([
.wait(forDuration: 1.5),
.run() { self.goToGameOverScene() } // We have to use `self` here because in closure.
]))
}
}
class GameScene: SKScene {
var countTouches = 0
override func didMove(to view: SKView) {
makeLabel(text: "Tap six times to 'win'~!")
}
// Six taps to win!
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
countTouches += 1
if countTouches > 5 { goToCongratsScene() }
}
// Game over if you move your finger!
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
goToGameOverScene()
}
}
我认为您的问题来自于尝试在 didMoveToView
和闭包内部交换场景...并且使用 self
会像那样很快变得困惑。
在这里,我只是将所有东西隔开,赋予它自己的功能,这样你就可以更容易地跟随哪里移动到哪里。
关于ios - 0_specialized _fatalerrorMessage (StaticString, StaticString, StaticString, UInt, flags : UInt32) -> Never - SpriteKit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41575674/
我从未见过这样初始化的 for 循环,不明白为什么要这样写? 我正在研究如何连接到 .NET 中的 IMAP 服务器,并开始查看名为 ImapX 的库中的代码。 .我在将数据写入 NetworkStr
我正在尝试解析这个标志“dataroot”(字符串类型)。 将此视为演示代码: from absl import flags from absl.flags import FLAGS flags.DE
我想知道调用之间是否有任何区别(或可能的副作用): AtomicBoolean.set(true) 和 AtomicBoolean.compareAndset(false, true) AtomicB
这个问题已经有答案了: Do you prefer "if (var)" or "if (var != 0)"? [closed] (26 个回答) 已关闭 6 年前。 两者之间有性能差异吗 if (
在 TensorFlow 中解析标志的目的是什么?什么是 tf.flags.FLAGS?&此代码语句的作用是什么? FLAGS = tf.flags.FLAGS FLAGS._parse_flags(
面试题:if (flag==0) 和 if (0==flag) 哪个会执行得更快?为什么? 最佳答案 我还没有看到任何正确的答案(并且已经有一些)警告:Nawaz 确实指出了用户定义的陷阱。而且我很遗
在我的一个站点上,我有一个主用户表,其中包含每个用户的唯一用户 ID、电子邮件地址、密码等。 我需要开始跟踪很多与每个用户相关的二进制标志,比如他们是否确认了他们的电子邮件,他们是否发布了消息,他们是
我有以下辅助函数用于使用 argparse 解析参数: def get_cli_arguments(): parser = argparse.ArgumentParser(prog='Xtra
var a = 'toto titi (should be removed) 5'.replace(/\(.*\)|\[.*\]|[^a-zA-Z0-9 ]|tata|tutu|tyty/gi, '!
我是 Golang 的新手,我一直无法使用标志找到解决此问题的方法。 我如何使用标志以便我的程序可以处理这样的调用,其中 -term 标志可能出现可变次数,包括 0 次: ./myprogram -f
我收到以下有关此正则表达式模式的控制台警告:。我看不到如何为该警告创建有效的正则表达式模式。请问,有没有人能解释一下这个错误以及如何解决它?。已尝试查看文档,但看不到如何使其对v标志有效
嗨,这两者有什么区别 在 SQL Server 中set @flag=1 和set @@flag = 1? 谢谢 最佳答案 什么都没有。作为惯例,某些内置函数的名称以双 at 符号 @@ 开头。为了避
是否可以在不覆盖现有标志的情况下使用 java 邮件在 IMAP 邮件消息上设置自定义标志?例如,我需要在已处理消息上设置一个标志“已处理”,而不将其状态更改为 SEEN/DELETED 或没有邮件客
我对以下行为感到困惑。变量标志从 Controller 传递到jsp代码: flag: flag eq 'Y': ${requestScope.flag eq 'Y'} flag == 'Y': $
我正在尝试根据标志值构建一个字符串 return `${super.getDetails()} Electric: ${this.isElectric} ${flag && '|hatchback'}
此外,将它们直接列在相应标签的对面是否为调试和发布设置了它们? 最佳答案 Xcode 帮助提供了相当清晰的定义: Name: Other C Flags Abstract: Space-separat
当我在 android studio 中创建或克隆一个 flutter 项目时,它显示“创建项目时出错设置 VM 标志失败:无法识别的标志:disable-dart-dev” 我使用的是 Androi
我有一些Python argparse命令行处理代码,最初看起来像这样: import argparse ap = argparse.ArgumentParser() ap.add_argument(
我尝试创建一个多线程单例模式类。 标题: class HL{ public: static HL* getInstance(); ......... priva
我在阅读别人的代码时遇到了很多标志, if (condition1) var1 = true else var1 = false 后来, if (var1 == true) /
我是一名优秀的程序员,十分优秀!