簡體   English   中英

XCode Spritekit,與png的非透明部分碰撞

[英]XCode Spritekit, collision with non-transparent sections of an png

我也遇到類似的問題: SKSpriteKit,檢測非透明部分

我的帖子從那里被刪除了。 我不知道為什么在其他論壇上這是雙重帖子!!! 但是,好的,如果您喜歡那樣。 可憐的丹尼誰仍然沒有答案!

好的,這又是一個問題:有兩個具有透明區域的png文件。 就像黃丹妮(Danny Huang)的職務一樣。 如果它們發生沖突,則觸發“-(void)didBeginContact:(SKPhysicsContact *)contact”。 但是我們要尋找的是它們只是與圖像的非透明區域相吻合。

這是一小段代碼:

...
SKTexture *nyanTexture1 = [SKTexture textureWithImageNamed:@"test.png"];
nyanTexture1.filteringMode = SKTextureFilteringNearest;
nyan = [SKSpriteNode spriteNodeWithTexture:nyanTexture1];
nyan.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:nyan.size.height / 2];
nyan.physicsBody.dynamic = YES;
nyan.physicsBody.allowsRotation = NO;
...
nyan.physicsBody.categoryBitMask = nyanKategorie;
nyan.physicsBody.collisionBitMask = worldKategorie | tunnelKategorie;
nyan.physicsBody.contactTestBitMask = worldKategorie | tunnelKategorie;
...
WasserFallTexture1 = [SKTexture textureWithImageNamed:@"Wasserstrahl1.png"];
SKSpriteNode* tunnel1 = [SKSpriteNode spriteNodeWithTexture:WasserFallTexture1];
tunnel1.position = CGPointMake( 0, y );
tunnel1.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:tunnel1.size];
tunnel1.physicsBody.dynamic = NO;
tunnel1.physicsBody.categoryBitMask = tunnelKategorie;
tunnel1.physicsBody.contactTestBitMask = nyanKategorie;
...
[tunnel addChild:tunnel1];

我可以不用Spritekit的漂亮引擎來做到這一點。 我也實現了它,但是我想知道一種使用SpriteKit引擎做到這一點的方法。 我知道我可以更改“ SKPhysicsBody”的類型和區域,但是我正在尋找一種可以避免兩個png文件非透明區域之間碰撞的解決方法。

謝謝山姆

聽起來像實際需要的是看到實際的物理物體。 SKView上有一個名為showsPhysics的屬性。 將其設置為YES ,您將看到活動中的精靈的物理物體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM