Avatar
Phyber
Člen
Avatar
Phyber:

Ahoj,
Mám problém s porovnáváním dvou textur (viz. kod)
Podmínka se nerovná, přestože textura je stejná jak u SKTexture tak u SKSpriteNode.
Potřeboval bych poradit, jak tento problém vyřešit. Předem dík :)

let sprite = SKSpriteNode(imageNamed: "dot")
let texture = SKTexture(imageNamed: "dot")
if sprite.texture == texture{
    println("textura je stejná")
}
Odpovědět 29.8.2015 10:50
Nic není nemožné
Avatar
coells
Redaktor
Avatar
coells:

Tahle otázka má dva aspekty.

První je, že SKTexture(ima­geNamed) vytvoří nový objekt třídy SKTexture, takže porovnáváš dvě různé instance. První instance pochází ze spritu, který interně vytvoří vlastní texturu. Dvě instance, dvě různé hodnoty.

Druhým aspektem je, že bys textury takhle porovnávat neměl. Netuším, proč se o to pokoušíš, ale obvykle se to dělá jenom v případě, že se staráš o cachování textur, abys šetřil systémové zdroje. Určitě si pročti vývojářskou dokumentaci ke Sprite Kitu, abys věděl, jak s texturami korektně zacházet.

 
Nahoru Odpovědět 29.8.2015 19:35
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.