2
これは現在進行状況バーのコードです。 GameSceneで私はvar xProgress = 1を設定しました。空のイメージは、値が今は0になるはずですか?SKSpriteNodeでヘルスプログレスバーを作成するスウィフト
SKNodeを時間の経過とともに値が減少する前にテストして、ゆっくりと減少させようとしています。私GameSceneで
class IMProgressBar : SKNode{
var emptySprite : SKSpriteNode? = nil
var progressBar : SKCropNode
init(emptyImageName: String!,filledImageName : String)
{
progressBar = SKCropNode()
super.init()
let filledImage = SKSpriteNode(imageNamed: filledImageName)
progressBar.addChild(filledImage)
progressBar.maskNode = SKSpriteNode(color: UIColor.white,
size: CGSize(width: filledImage.size.width * 2, height: filledImage.size.height * 2))
progressBar.maskNode?.position = CGPoint(x: -filledImage.size.width/2,y: -filledImage.size.height/2)
progressBar.zPosition = 0.1
self.addChild(progressBar)
if emptyImageName != nil{
emptySprite = SKSpriteNode.init(imageNamed: emptyImageName)
self.addChild(emptySprite!)
}
}
func setXProgress(xProgress : CGFloat){
var value = xProgress
if xProgress < 0.1{
value = 0
}
if xProgress > 0.1 {
value = 0
}
progressBar.maskNode?.xScale = value
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
私も持っている:
let progressBar = IMProgressBar(emptyImageName: nil,filledImageName: "health")
progressBar.position = CGPoint(x: self.frame.midX, y: self.frame.height/3)
self.addChild(progressBar)
何かがそれらを打つときにそれを減少させ、変数に選手の健康を保存するために、より普通になり、それがゼロに達するとゲームが終了します。プレイヤーは値を表示するために画面上にそれを別々に表示しますが、ディスプレイから値を読み取ったり試したりしないでください。 – simonWasHere
私はこの質問ではあまり明確ではありません。プログレスバーは燃料棒の多くです。したがって、プレイヤーはバーである燃料レベルを上げるためにスプライトノードと頻繁に衝突する必要があります。 –
燃料値を変数に保存する方が良いです – simonWasHere