【发布时间】:2018-03-10 15:55:32
【问题描述】:
我正在尝试使用 swift 3 的 sprite Kit 开发一个简单的游戏。我想根据当前纹理运行不同的动画,比如
if self.texture.name == "Jump2" {
self.run(Jump_Ouch6, withKey: "Jump_Ouch6")
} else if self.texture.name == "Jump3" {
self.run(Jump_Ouch7, withKey: "Jump_Ouch7")
}
问题是我找不到返回当前纹理名称的方法。
我尝试过的一些事情是:
使用
print(texture?.description.contains("Jump2"))
打印一个“可选(布尔)”
我认为这意味着我在正确的轨道上......但是使用
if (texture?.description.contains("Jump2"))! {
print ("Hi")
} else {
print ("Bye")
}
给出一个 EXC_BREAKPOINT
我通过谷歌搜索查看了这里的一些其他帖子,例如
How do you get the original filename of a sprite/texture in Swift?
虽然该类返回一个完整的 SKSpriteNode,但它并不真正适合我的需要。我仍然花了 3 多个小时思考也许我可以枚举纹理然后传递给我用来创建动画的函数。但我仍然只传递纹理名称并留在同一个地方。
有什么帮助吗??
【问题讨论】:
-
您正在强制解开整个语句。首先,尝试调查为什么您的
texture是nil。 -
您好,谢谢。查看打印语句,我确实在终端输出的开头得到了一个 nil 。如果我使用条件来检查零,那么我可以得到一个结果。是纹理是“xxx”,纹理不是“xxx”
-
我更多的是寻找一种直接访问纹理名称的方法,或者直接通过 Xcode 即 texture.name,或者通过其他方式(例如将结构传递给 SKAction),但我不能看到那个工作。一定有办法吧?我的意思是,否则这是很多 switch 和 if 语句
标签: xcode swift3 sprite-kit