
[code]

    var a = 3
    let b = SKAction.moveByX(-100, y: 0.0, duration: 2)
    
[/code]

`duration`の値に変数aを入れたい場合どのようにしたら良いのでしょうか？


CC BY-SA 3.0
2016-01-31T03:32:47.190
21524
2016-02-02T15:42:22.467
2016-02-02T15:42:22.467
49
14193
question
swift spritekit
変数の使用方法について


このようにしたらエラーが出てうまくいかなかったということでしょうか。

[code]

    var a = 3
    let b = SKAction.moveByX(-100, y: 0.0, duration: a)
    
[/code]

該当のメソッドはSwiftではこのようなシグニチャーになっています。  
[\+
moveByX:y:duration:](https://developer.apple.com/library/prerelease/mac/documentation/SpriteKit/Reference/SKAction_Ref/index.html#//apple_ref/occ/clm/SKAction/moveByX:y:duration:)

[code]

    class func moveByX(_ deltaX: CGFloat,
                     y deltaY: CGFloat,
              duration sec: NSTimeInterval) -> SKAction
    
[/code]

durationに与える引数は、NSTimeInterval型ですから、変数自体をNSTimeIntervalとして宣言するか、

[code]

    var a: NSTimeInterval = 3
    let b = SKAction.moveByX(-100, y: 0.0, duration: a)
    
[/code]

もしくはキャストして型を合わせてやらないといけません。

[code]

    var a = 3 //<-この書き方だとaはInt型になります。
    let b = SKAction.moveByX(-100, y: 0.0, duration: NSTimeInterval(a))
    
[/code]

(NSTimeIntervalはSwiftではDoubleのtypealiasですので、上記の型名の部分はDoubleでも構いません。)

もしお聞きになりたい内容と違っていたら、コメントかご質問を修正するかたちでお知らせください。  
一般的な質問の書き方の話になりますが、うまくいかなかった例があるのであれば、その場合のコードとエラーメッセージ等も質問に含められたほうが、より的確な回答を得られる可能性が高まりますので、できるだけそれらの情報を盛り込むようにしてください。


CC BY-SA 3.0
2016-01-31T03:52:46.053
21525
2016-01-31T03:52:46.053
13972
21524
answer