0
私はSpriteKitゲームを作っていますが、プレーヤーノードに従うためにSKCameraNodeを取得しようとしています。しかし、SKActionを使用してプレイヤーノードのpositionプロパティにアクセスすると、アクション実行後の位置は実行前の位置と同じになります。ここに私のシーンのコードは次のとおりです。SKAction完了待ち
func updateMap(playerX: Int, playerY: Int) {
player.coordinates = CGPoint(x: highlightedTile.tileX, y: highlightedTile.tileY)
camera?.position = player.position
}
と私player
クラスからのコード:アクションが完了するまで
var coordinates: CGPoint {
didSet{
let moveAction = SKAction.moveTo(CGPoint(x: (coordinates.x) * 64 - 64, y: (coordinates.y) * 56 - 47), duration: NSTimeInterval(2.0))
self.runAction(moveAction)
}
}
SpriteKitベースは、プレイヤーノードのposition
プロパティを更新しません。したがって、カメラの位置を更新する前にアニメーションが完了するまで待つ必要があります。これはどうすればできますか?移動が完了する前に、あなたはposition
プロパティを照会する
申し訳ありませんが、私の質問には明確さが欠けています。このコードは私の 'player'クラスの一部です。 'Player'はマップ上でのプレーヤーの位置を表す' coordinates'プロパティを持っています。このコードは、 'coordinates'プロパティが変更されたときに起動します。私がしたいのは、プレイヤーが移動した後、シーンクラスではなく、プレーヤークラスでコードを実行することです。これはどうすればできますか? –
@ATyshka私が投稿した問題は何ですか?それはプレーヤーの開始位置と終了位置を出力しますか? – Whirlwind
私は自分の問題を述べるのが混乱していることをお詫び申し上げます。私は私の質問を更新しました。 –