2013-09-25 9 views
9

Sto sperimentando l'utilizzo di SKShapeNodes in un gioco e ho scoperto che gli SKShapeNode con antialiasing sono molto sfocati.È possibile correggere la sfocatura di SKShapeNodes con antialiasing?

Senza antialiasing:

image without antialiasing

Con antialiasing:

image with antialiasing

c'è qualche modo per utilizzare antialiasing di SKShapeNodes in SpriteKit per ridurre la scala-passo su linee, ma senza rendendo le linee sfocate come nella seconda immagine sopra?

risposta

5

No, questo è l'aspetto di "antialiasing" su un nodo di forma. Potresti aspettarti di vedere qualcosa di più come multisampling, ma non è quello che SpriteKit sta facendo qui. Per ottenere le linee morbide e non sfocate che stai cercando dovrai disegnare le tue forme in un'immagine e visualizzarle in un SKNode. Potresti anche considerare filing an enhancement request sull'API.

0

Questa non è una soluzione carina, ma funziona: crea un SKShapeNode più grande e ridimensionalo.

normale:

let shape = SKShapeNode(circleOfRadius: 10) 

scalato:

let scaleFactor: CGFloat = 2 
let shape = SKShapeNode(circleOfRadius: 10 * scaleFactor) 
shape.xScale = 1/scaleFactor 
shape.yScale = 1/scaleFactor 

Questo rende il rendering appaiono molto meno sfocati, ma essere avvertiti, può causare problemi frustrante quando si aggiunge SKNodes come i bambini, perché può essere ridimensionato ricorsivamente e finire più piccolo di quanto ci si aspetti.