1

SKCropNodeソースイメージでカバーされていない、影響を受けるノードからすべてのものを削除することで機能します。これはマスキングの 1 つのタイプであり、もう 1 つはこのロジックを逆にして、ソース イメージでカバーされていないすべてのものを明らかにすることです。

SKCropNodeと呼ばれるこの状態を設定するためのブールスイッチがあり、invertMask十分に賢明です。

厄介なのは、一見プライベートなことです。

すべてのアプリ ストアの承認プロセス、プライベート API の危険性などを脇に置き、テストするのが興味深いものであることを受け入れる場合...これはテストの目的のみです...

invertMaskSwiftでこれをtrueに設定するにはどうすればよいですか?

アップデート:

接線的に類似した質問に対する他の回答があります。

Swift で iOS プライベート API にアクセスするには?

しかし、それは私を助けませんし、Swiftでこの特定の質問でブール値、この特定のものを設定する方法に対する直接の答えでもありません。

ここでセレクターについて質問しましたが、その目標を達成するためにセレクターを使用または理解する必要がないことを示す回答を受け入れました: SKAction のセレクターとは: perform(_:onTarget:)

しかし、Swift でこのブール値を設定するには、セレクターを使用するために必要な正確な構文を理解する必要があるようです。それが何であるか、またはそれを行う方法もわかりません。

しかし、このブール値を (Swift で) 設定する他の方法は確かに問題ありません。

4

1 に答える 1

2

最新の Xcode 8.1 ( Apple Swift バージョン3.0.1でビルド8B62 ) によると、公式の SKCropNode.h ヘッダーは次のとおりです。

/**
 @header


 Node that can crop its children's contents with a mask


 @copyright 2011 Apple, Inc. All rights reserved.

 */

#import <SpriteKit/SKNode.h>
#import <SpriteKit/SpriteKitBase.h>

NS_ASSUME_NONNULL_BEGIN

/**
 A SpriteKit node that masks child nodes using another node's alpha component
 */
SK_EXPORT @interface SKCropNode : SKNode

/**
 SKNode to be used as the mask.

 The SKNode supplied as the mask must not be a child of another node, but it may have children. Anywhere the mask's output alpha component is less than 0.05 masks out that area for the SKCropNode's children. If the mask is nil, nothing is masked out.
 */
@property (nonatomic, retain, nullable) SKNode *maskNode;

@end

NS_ASSUME_NONNULL_END

ご覧の通り の存在感はinvertMaskありませんが、申し訳ありませんがありえないと思います。

于 2016-11-05T11:09:28.857 に答える