Ich entwickle ein kleines Spiel mit Swift & SpriteKit. Wenn ich eine SKSpriteNode
Schaltfläche für Neustart hinzufüge, wird es nicht richtig skaliert.SKSpriteNode scaling nicht richtig
Die Größe der Schaltfläche Neustart ist 100px in Höhe und Breite. Wenn ich den Maßstab nicht einstelle, wird der gesamte Bildschirm abgedeckt und der Bildschirm erscheint weiß. Ich habe herausgefunden, dass wenn ich nur setScale
bis 0.005 als es auf dem Bildschirm erscheint, aber nicht in der richtigen Größe. Hier
import Foundation
import SpriteKit
class EndScene: SKScene {
var restartBtn = SKSpriteNode()
override func didMoveToView(view: SKView) {
background()
restartGame()
}
func restartGame() {
restartBtn = SKSpriteNode(imageNamed: "restartBtn")
restartBtn.setScale(0.005)
restartBtn.position = CGPoint(x: self.size.width/2, y: self.size.height/4)
restartBtn.zPosition = 1
self.addChild(restartBtn)
}
func background() {
let bkg = SKSpriteNode(imageNamed: "Background")
bkg.size = self.frame.size
bkg.position = CGPoint(x: self.frame.width/2, y: self.frame.height/2)
bkg.zPosition = -2
self.addChild(bkg)
}
}
ist der Ausgang dieses Codes, Restart Button Output
UPDATE
Ich habe scene!.scaleMode = .AspectFill
direkt in didMoveToView
Funktion und es half, die Form des SpriteNode richtig in Rendering. Aber immer noch muss ich setScale(0.001)
, um die Größe des Restart-Knopfes in den Bildschirm passen. Kann mir jemand helfen, welche Codezeile ich noch vermisse?
Ich habe das auch bereits versucht, aber es gibt kein anderes Ergebnis. Um CGSize zu verwenden, muss ich Breite und Höhe '0.1' eingeben, um es auf dem Bildschirm sichtbar zu machen, und es wird immer noch in ovaler Form dargestellt, anstatt rund zu sein. – Haadi