私はこの質問で助けを探しています。 私はクラス名BallNode
SKShapeNode
を持っています。私のコードの中には、スクリーンの上から3秒ごとにスポーンボールという機能もあります。今、ボールの位置を1秒ごとに特定する関数を設定したいので、ball.position.y > 200
がコンソールにメッセージを出力する場合は、ノードの最後の位置を取得
これは、ボールがこの位置にある場合(落ちていないときでも)、別の機能を呼び出すことを目的としています。私はTimer
、update(_ currentTime: CFTimeInterval)
、SKAction
を経由して、それを実行しようとしましたが、私は成功しなかったと私は本当に何をすべきか見当がつかない...
アップデート - 私の現在のコード:
var timeType1: CFTimeInterval = 0.0
var timeType2: CFTimeInterval = 2.0
override func update(_ currentTime: CFTimeInterval) {
if (currentTime - timeType1 > timeType2){
print("time")
self.checkBallsPosition()
self.timeType1 = currentTime
}
self.enumerateChildNodes(withName: "color.BallNode") { node, _ in
self.checkBallsPosition()
}
}
func checkBallsPosition() {
self.enumerateChildNodes(withName: "BALL") { (node: SKNode, nil) in
let x = self.createTopBorder()
x.isHidden = true
let wait2 = SKAction.wait(forDuration: 1)
let action2 = SKAction.run {
let position = Double(node.position.y)
if position < 200 {
}
else if position > 200 {
print("bolbo")
node.removeFromParent()
}
}
self.run(SKAction.sequence([wait2,action2]))
}
}
私がしようと何のthatsこれまでのところ、問題は私がボールを手に入れたいと言ったからです最後にポジションです。ボールが画面の下に落ちるので、最後の位置は画面の下の境界線に触れるとき、または別のボールに触れるときでなければなりません。私がupdate
に設定した場合は、1秒おきにボールの位置を取得します。別の問題は、ボールの位置が常に(衝突が発生したとき)別のボールに依存して変化し得ることである。
更新#2 - 他の機能:
func spawnBalls() {
let wait = SKAction.wait(forDuration: 3)
let action = SKAction.run {
self.createBall()
}
run(SKAction.repeatForever((SKAction.sequence([wait, action]))))
}
func createBall(){
let ball = BallNode(radius: 65)
print(ball.Name)
print(ball._subName!)
ball.position.y = ((frame.size.height) - 200)
let ballXPosition = arc4random_uniform(UInt32(frame.size.width))
ball.position.x = CGFloat(ballXPosition)
ball.physicsBody?.categoryBitMask = PhysicsCategory.ball
ball.physicsBody?.collisionBitMask = PhysicsCategory.ball
ball.physicsBody?.contactTestBitMask = PhysicsCategory.topBorder
ball.delegate = self
addChild(ball)
}
はあなたのコードを投稿ので、我々は間違って起こっているかを見ることができ、あなたは簡単に私の質問を更新update' –
'でこれをチェックすることができるはずです、あなたは私がそれを解決するために助けることができますか? – omerc