2017-08-22 1 views
0

Ich habe einen SKSpriteNode, der eine PNG Textur hat, teilweise transparent.Wie man Volumen oder undurchsichtige Pixelzahl eines Teils eines Sprites in Spritekit misst

Ich möchte eine logische Trennlinie auf diesem Sprite machen und dann die Lautstärke oder die Anzahl der undurchsichtigen Pixel in jedem Teil messen. Das Ziel der Übung ist es, zu sagen, wie viel Prozent Sprites insgesamt in jedem Teil vorhanden sind.

Ich habe einige Nachforschungen gemacht und kam leer. Scheint, es gibt keine eingebauten Methoden dafür. Kannst du mich hier in die richtige Richtung lenken?

+0

Eine Möglichkeit besteht darin, ein "getPixel" zu erstellen und die Teilbereiche zu iterieren und Ihren Zustand zu zählen/zu überprüfen. Dies wäre wirklich ineffizient, aber es könnte ein Anfang sein. Sie könnten von dort fortschreiten. https://stackoverflow.com/q/25146557/1804251 – BennX

Antwort

1

Sie könnten ein „Pixel perfekt“ SKPhysicsBody wie folgt erstellen:

let sprite = SKSpriteNode(imageNamed: "Spaceship") 
sprite.physicsBody = SKPhysicsBody(texture: sprite.texture!, 
            size: sprite.texture!.size()) 

Und dann Zugriff auf die Eigenschaft sprite.physicsBody.area, die Ihnen auf den Bereich des Körpers in Quadratmetern gibt (Sie es Punkte umwandeln können, here is the documentation)

+0

es ist nicht so Pixel perfekt wie Sie vielleicht denken – Knight0fDragon

+0

Nizza. Nun, wie bekomme ich eine Stelle für einen Teil des Körpers, wie ich in meiner Frage beschrieben habe. – Kashif

Verwandte Themen