いくつか並べた箱を移動させようとしているのですが移動指示を使って移動させた後の座標がほんのわずかですが変化してしまいます。
let
1 var array:[SKShapeNode] = [] 2for i in 0...20 { 3 let guideSprite = SKShapeNode(circleOfRadius: 30) 4 guideSprite.fillColor = UIColor.red 5 guideSprite.position = CGPoint(x:300 - 300 * i,y:1000) 6 array.append(guideSprite) 7} 8for f in 0...20 { 9 array[f].position.x += 10 10print("XX:",array[f].position.x,",YY:",array[f].position.y) 11 12}
このシンプルなプログラムだと
XX: 310.0 ,YY: 1000.0
XX: 10.0 ,YY: 1000.0
XX: -290.0 ,YY: 1000.0
XX: -590.0 ,YY: 1000.0
XX: -890.0 ,YY: 1000.0
のように出力されるのですが、
for f in 0...20 {
array[f].position.x += 10
print("XX:",array[f].position.x,",YY:",array[f].position.y)}
の代わりに以下のような移動指示のプログラムを通すと
override func update(_ currentTime: TimeInterval) { if isTouchedLeft == true { for f in 0...20{ Array[f].position.x += 10 print("X:",boxArray[f].position.x,"Y:",boxArray[f].position.y) } } }
X: 309.999572753906 Y: 1000.0
X: 10.0 Y: 1000.0
X: -289.999572753906 Y: 1000.0
X: -589.999145507812 Y: 1000.0
X: -889.999877929688 Y: 1000.0
X: -1189.99829101562 Y: 1000.0
X: -1489.99975585938 Y: 1000.0
整数を足しているのに微小にずれてしまいます。
なぜこうなるのか知りたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/13 10:06