Ios Swift-通过iAction按钮(在课堂上)调用SKAction
我是Swift的新手-在搜索了这么多小时后,我需要你们专业人士的帮助:D 使用Swift计划一个小型IOS应用程序,结构如下:Ios Swift-通过iAction按钮(在课堂上)调用SKAction,ios,swift,avaudioplayer,ibaction,skview,Ios,Swift,Avaudioplayer,Ibaction,Skview,我是Swift的新手-在搜索了这么多小时后,我需要你们专业人士的帮助:D 使用Swift计划一个小型IOS应用程序,结构如下: 游戏视图控制器 游戏场景 在游戏场景中,我放置了一个小图像: class GameScene: SKScene { private var tanzschuhR: SKSpriteNode! override func didMove(to view: SKView) { self.size = CGSize(width: 1024, height: 10
- 游戏视图控制器
- 游戏场景
class GameScene: SKScene {
private var tanzschuhR: SKSpriteNode!
override func didMove(to view: SKView) {
self.size = CGSize(width: 1024, height: 1024)
self.backgroundColor = .gray
self.scaleMode = .aspectFill
let startPt = CGPoint(x: 500, y: 400)
tanzschuhR = SKSpriteNode(imageNamed: `SchuhR`)
tanzschuhR.position = startPt
tanzschuhR.zPosition = 1
self.addChild(tanzschuhR)
func swingPattern1() {
// move it
let negDelta = CGVector(dx: -50, dy: -50)
let action = SKAction.move(by: negDelta, duration: 4)
tanzschuhR.run(action)
}
}
}
现在,我只想从GameViewController中的iAction按钮启动函数swingPattern1(),以便启动图像同步到正在播放的音频的移动
这是按钮的一部分:
@IBAction func playIt(_ sender: UIButton) {
playMultipleSound()
// no idea to call the function swingPattern1()
// always get an error
}
有人能帮我吗
如果点击按钮,如何调用此函数
或者有没有其他更好的方法通过点击按钮来启动音频运动
非常感谢你的帮助
更新: 我将var放在iAction中:
@IBAction func playIt(_ sender: UIButton) {
playMultipleSound()
let gameScene = GameScene()
gameScene.swingPattern1()
}
不知道,如果语法正确-抱歉…:D
生成并运行后,我收到以下错误:
应用程序停止…首先,移动
swingPattern1
外部didMove(查看:SKView)
然后在视图控制器中
@IBAction func playIt(_ sender: UIButton) {
playMultipleSound()
// Assuming you already have a var gameScene: GameScene
gameScene.swingPattern1()
}
首先,移动
swingPattern1
外部didMove(查看:SKView)
然后在视图控制器中
@IBAction func playIt(_ sender: UIButton) {
playMultipleSound()
// Assuming you already have a var gameScene: GameScene
gameScene.swingPattern1()
}
非常感谢您的快速帮助,但是:我必须如何假设这个var,在哪个位置?像这样:让GameSecene=GameSecene()GameSecene.swingPattern1()?!?我尝试过这种方法,但函数中出现了另一个错误:->tanzschuhR.run(action)-->AQDefaultDevice(173):跳过输入流0 0 0x0致命错误:在展开可选值时意外发现nil非常感谢您的快速帮助,但是:我必须如何假定此变量,在哪个位置?像这样:让GameSecene=GameSecene()GameSecene.swingPattern1()?!?我尝试过这种方法,但在函数中出现了另一个错误:->tanzschuhR.run(action)-->AQDefaultDevice(173):跳过输入流0 0 0x0致命错误:在打开可选值
tanzschuhR
isnil
-它被分配到哪里?在类的开头…所以,似乎在didMove(to view:SKView)
之前调用了swingPattern1()
,因此没有为tanzschuhR
赋值。好的,听起来很合乎逻辑。我必须把所有的东西都放在函数中吗?或者你有其他解决方案吗?也许我的swift结构从一开始就错了。。。我只是想在启动音频(舞鞋,音乐启动时)时启动动画(移动spritekit图像)。当按下iAction按钮时,音频开始。。。一切都在一个GameViewcontroller中,有一个单独的游戏场景。还有其他解决方案吗?tanzschuhR
是nil
-它被分配到哪里了?在开始的时候,在didMove(查看:SKView)
之前调用了swingPattern1()
,所以tanzschuhR
没有被分配值。好的,听起来很合乎逻辑。我必须把所有的东西都放在函数中吗?或者你有其他解决方案吗?也许我的swift结构从一开始就错了。。。我只是想在启动音频(舞鞋,音乐启动时)时启动动画(移动spritekit图像)。当按下iAction按钮时,音频开始。。。一切都在一个GameViewcontroller中,有一个单独的游戏场景。还有其他解决办法吗?