2016-09-28 1 views
1

Je ne comprends pas pourquoi l'option "strokeTexture" ne fonctionne pas sur un SKShapeNode. Ou, comment puis-je faire la frontière avec la texture? Merci d'avance!SpriteKit. Pourquoi .strokeTexture ne fonctionne pas pour SKShapeNode?

let shape = SKShapeNode(circleOfRadius: 100) 
shape.position = CGPoint(x: 200, y: 400) 
shape.fillColor = SKColor.white 
shape.fillTexture = SKTexture(imageNamed: "test") 
shape.lineWidth = 50 
shape.strokeColor = SKColor.white 
shape.strokeTexture = SKTexture(imageNamed: "test(5)") 

Sortie:

enter image description here

image test: enter image description here

Test (5) Image: enter image description here

+0

Vous devez donner plus d'informations, personne ne peut lire dans vos pensées. Quelle est la texture, quelle est la texture du trait, quel est le résultat attendu – Knight0fDragon

+0

La texture peut être vue dans la capture d'écran, elle remplit le cercle. J'attends au moins une partie de la réaction (remplissage, répétition). J'ai essayé différentes textures, couleurs et tailles de textures. Le résultat est toujours le même - coup noir. –

+0

Eh bien, d'après ce que je vois, cela fonctionne très bien, sinon votre coup serait blanc – Knight0fDragon

Répondre

1

Il ne fonctionne pas dans Simulator!

Essayez sur votre appareil. J'ai l'impression que ce coup pourrait être fait avec du métal, alors que le remplissage n'est pas fait avec du métal, donc il est visible dans le simulateur.

Le remplissage ne pivote pas non plus avec l'objet sur l'appareil, mais le contour/contour et sa texture le font.

Cela tendrait à indiquer qu'un SKShapeNode sans remplissage peut avoir des performances raisonnables.

+0

Merci beaucoup pour votre réponse! –

0

Définissez la largeur et la hauteur de la texture utilisée pour rendre le trait multiple de 8 pixels. Dans votre cas Test (5) a des dimensions 100x100. Si vous modifiez cette texture pour une autre avec des dimensions, par ex. 96x96 pixels, le contour sera rendu correctement et affiché. Je ne sais pas, pourquoi il n'y a aucune référence à ce fait dans la documentation officielle.