Ios 怪异的雨燕&x27;s#选择器行为。参数值通过#选择器完全不同
我不熟悉斯威夫特的选择器范式。最终,我试图将飞船的SKSpriteNode移动到一条CG可变路径上,并在飞船所行驶的路径上添加废气作为SKEmitterNodes 然而,我仍然停留在选择器范式上。我正试图通过计时器将飞船精灵的位置发送到Ios 怪异的雨燕&x27;s#选择器行为。参数值通过#选择器完全不同,ios,swift,timer,selector,Ios,Swift,Timer,Selector,我不熟悉斯威夫特的选择器范式。最终,我试图将飞船的SKSpriteNode移动到一条CG可变路径上,并在飞船所行驶的路径上添加废气作为SKEmitterNodes 然而,我仍然停留在选择器范式上。我正试图通过计时器将飞船精灵的位置发送到addFumeToPosition(upoint:CGPoint)函数,以便稍后我可以将SKEmitternode添加到该位置 出于某种原因,我无法理解#选择器发出的东西与我输入变量的东西完全不同。请看下面的照片。这是怎么回事 let spaceShipSprit
addFumeToPosition(upoint:CGPoint)
函数,以便稍后我可以将SKEmitternode添加到该位置
出于某种原因,我无法理解#选择器发出的东西与我输入变量的东西完全不同。请看下面的照片。这是怎么回事
let spaceShipSprite = SKSpriteNode(texture: SKTexture(image: #imageLiteral(resourceName: "spaceShip")))
spaceShipSprite.position = CGPoint(x: 142.0, y:160.0)
spaceShipSprite.name = "spaceShip"
self.addChild(spaceShipSprite)
print("spaceShipSprite.position before timer point x:\(spaceShipSprite.position.x) y:\(spaceShipSprite.position.y)")
let gameTimer = Timer.scheduledTimer(timeInterval: 0.5, target: self, selector:#selector(addFumeToPosition(_: )), userInfo: spaceShipSprite.position, repeats: true)
print("spaceShipSprite.position before timer point x:\(spaceShipSprite.position.x) y:\(spaceShipSprite.position.y)")
spaceShipSprite.计时器点前的位置x:142.0 y:160.0
spaceShipSprite.计时器点后的位置x:142.0 y:160.0
spaceShipSprite.position在计时点x:196092657881833.0 y:100000000.0时,您不能这样做
两种受支持的目标/行动形式是
- 无参数
func addFumeToPosition()
- 一个参数表示受影响的类(在本例中为
实例)计时器
计时器
实例
所有自定义参数都必须通过userInfo
参数传递和处理
func addFumeToPosition(_ timer: Timer){
let point = timer.userInfo as! CGPoint
print("spaceShipSprite.position during point x:\(point.x) y:\(point.y)")
}
注意:在Swift 4中,您可能必须向函数添加@objc
属性。您不能这样做
两种受支持的目标/行动形式是
- 无参数
func addFumeToPosition()
- 一个参数表示受影响的类(在本例中为
实例)计时器
计时器
实例
所有自定义参数都必须通过userInfo
参数传递和处理
func addFumeToPosition(_ timer: Timer){
let point = timer.userInfo as! CGPoint
print("spaceShipSprite.position during point x:\(point.x) y:\(point.y)")
}
注意:在Swift 4中,您可能需要将
@objc
属性添加到函数中。您应该澄清这两种形式是特定于计时器的目标/动作的。您应该澄清这两种形式是特定于计时器的目标/动作的。