私を助けてください!私はGameSceneクラスで宣言した関数をupdate関数内で呼び出そうとしています。しかし、それは関数を認識しません、私はこれがクラスや何かと関係があると思います。なぜなら、すべてのフレームで関数を実行したいからです(しかし、独自の動きに応じて個々のspriteCopyを更新する必要があります)。スプライトのコピーがすべて関数に従っていることを確認し、無限に続行してください。関数更新で関数を呼び出せないのはなぜですか?
ご協力いただきありがとうございます。
func touchUp(atPoint pos : CGPoint) {
if let spriteCopy = self.sprite?.copy() as! SKShapeNode? {
spriteCopy.fillColor = UIColor.white
spriteCopy.position = initialTouch
spriteCopy.physicsBody?.restitution = 0.5
spriteCopy.physicsBody?.friction = 0
spriteCopy.physicsBody?.affectedByGravity = false
spriteCopy.physicsBody?.linearDamping = 0
spriteCopy.physicsBody?.angularDamping = 0
spriteCopy.physicsBody?.angularVelocity = 0
spriteCopy.physicsBody?.isDynamic = true
spriteCopy.physicsBody?.categoryBitMask = 1 //active
spriteCopy.isHidden = false
touchUp = pos
xAxisLength = initialTouch.x - touchUp.x
yAxisLength = initialTouch.y - touchUp.y
xUnitVector = xAxisLength/distanceBetweenTouch * power * 300
yUnitVector = yAxisLength/distanceBetweenTouch * power * 300
spriteCopy.physicsBody?.velocity = CGVector(dx: xUnitVector, dy: yUnitVector)
func directionRotation() {
if let body = spriteCopy.physicsBody {
if (body.velocity.speed() > 0.01) {
spriteCopy.zRotation = body.velocity.angle()
}
}
}
directionRotation() //When I run the function with this line, the spriteCopy
//is spawned initially with the right angle (in the direction
//of movement) but doesn't stay updating the angle
sprite?.isHidden = true
self.addChild(spriteCopy)
}
}
、ここで関数は機能更新で認識されていない:
override func update(_ currentTime: TimeInterval) {
directionRotation() //this line has error saying "use of unresolved identifier"
// Called before each frame is rendered
}
編集:私は考えていたここ
は、並べ替えの範囲で動作します関数のコードがありますおそらく、spriteCopyのプロパティが生成された後のアクセスを制限しない "copy()"メソッドなしで、複数のspriteCopyを生成する方法があるかもしれません。覚えている間も、directionRotation関数をそれぞれに独立して適用できるように、個々のSpriteNodesでなければなりません(FYI:ユーザーは50以上のスプライトノードを生成できます)
私は方向回転機能を入れてみました:あなたは私はあなたには、いくつかの操作を行う必要があるわけ
はこのように考えるタッチアップ機能実現directionRotation
EDITから出て移動する必要がありますtouchup関数の上にあるので、コピーがまだ作成されていないため、spriteCopyを「スプライト」に変更する必要がありました。しかしそれはうまくいかないようでした。産卵時の初期の角度さえも機能しません。 - ありがとうございました –
spriteCopyのプロパティへのアクセスを制限しない "copy()"メソッドがなく、複数のspriteCopyを生成する方法があるかもしれません。まだ個々のSpriteNodesでなければならないので、directionRotation関数をそれぞれ独立して適用することができます –
実装するものを説明できますか? – Sergey