0
進捗状況/ヘルスバーとしてSKSpriteNodeを設定しました。 幅は変数に設定されています。 この変数はタイマーとともに減少しますが、ノードの幅はそれに伴って減少しません。 変数を大きくするように設定すると、変数を減らすように設定するとノードの幅は増えますが、問題はありません。 私はここで単純な誤りを犯しているのではないかと心配しています。ここ は動作するコードですが、私は+ =に変更した場合は動作しません - あなたは古いものを削除せずに新しいスプライトを追加している=SKSpriteNodeの幅は可変で増加しますが、減少しませんか?
class GameScene: SKScene, SKPhysicsContactDelegate {
var health = SKSpriteNode()
var healthTimer = Timer()
var progressValue = 350
func startHealthTimer() {
progressValue += 20
}
override func didMove(to view: SKView) {
healthTimer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.startHealthTimer), userInfo: nil, repeats: true)
}
override func update(_ currentTime: TimeInterval) {
let healthTexture = SKTexture(imageNamed: "health.png")
health = SKSpriteNode(color: .white, size: CGSize(width: progressValue, height: 30))
health.position = CGPoint(x: -self.frame.width/2 + healthTexture.size().width/2, y: self.frame.height/2)
health.zPosition = 2
self.addChild(health)
}
わかりました。新しいスプライトのために各スプライトを削除するにはどうすればよいですか? –
古いもので 'removeFromParent'を呼び出します。 –
仕事が大好き!ノードのいずれかの端から均等に離れて、幅を右端から減らす方法はありますか? –