簡體   English   中英

SKSpriteKit混合目標Alpha

[英]SKSpriteKit blending destination alpha

這是SKScene構造函數中的源代碼:

self.backgroundColor = [SKColor greenColor];
SKSpriteNode* sprite1 = [[SKSpriteNode alloc] initWithColor: [SKColor colorWithRed: 0.5 green:0.5 blue:0.5 alpha:1.0] size: CGSizeMake(500.0, 500.0)];
sprite1.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
[self addChild: sprite1];

SKSpriteNode* sprite2 = [[SKSpriteNode alloc] initWithColor: [SKColor colorWithRed: 1.0 green:1.0 blue:1.0 alpha: 1.0] size: CGSizeMake(100.0, 100.0)];
sprite2.blendMode = SKBlendModeSubtract;
[sprite1 addChild: sprite2];

我希望在sprite2覆蓋的區域上獲得綠色,因為我設置了混合模式SKBlendModeSubtract,這將導致混合后目標alpha為0.0。 我需要幫助才能獲取它,或者為什么它無法按預期運行? 提前致謝

減法混合模式會減去顏色值,而不是alpha值。 您看到的相交應該是黑色的,因為相交的顏色是(1,0,0)-(1,0,0)=(0,0,0)。

您正在尋找的是圖層蒙版。 SKCropNode可以執行此操作,但可能不是您想要的方式。 您可能需要看以下問題之一以獲得一些想法: 在SpriteKit(SKCropNode)中對蒙版圖像進行動畫處理是否可以在Sprite Kit中使用圓形(SKShapeNode)作為蒙版?

暫無
暫無

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

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