私は実際にこれを理解しようと狂っているので、どんな助けでも本当に感謝します。私はスプライトの大部分を隠して、それを徐々に見せようとしています。私は長方形でのみ動作する場合、これは正常に動作します。例えば、私は「ClippingNode」クラスの誰かの実装を発見し、それがうまく働いていた、すなわち、このコードの一部:cocos2d - スプライトの一部のみを表示する不規則な形状
-(void) visit
{
glPushMatrix();
glEnable(GL_SCISSOR_TEST);
glScissor(clippingRegion.origin.x + positionInPixels_.x, clippingRegion.origin.y + positionInPixels_.y, clippingRegion.size.width, clippingRegion.size.height);
[super visit];
glDisable(GL_SCISSOR_TEST);
glPopMatrix();
}
は、問題は、私は不規則な形状だけでなく、長方形を必要です。私は、glScissorへの呼び出しをスタックし、より小さな四角形を多く含む形を作成することを望んでいましたが、残念ながらglScissorは一度しか呼び出されませんでした。
cocos2dはOpenGLsのステンシルバッファをサポートしていないようですが、それがあってもOpenGLが分かりにくいことがわかりました。スプライト上のベジェパスをマスク(私がQuartzでできると思う)に設定できるなら、それは素晴らしいでしょうが、サポートされているようには見えません。
ここに知恵がある人は、すごくいいですね。
を、私は別の方法を頼むよ:誰もがCCNodeの「訪問」の上記の実装を変更することはできクリップしますclippingRegion.originを中心とした半径40の円へのノードの内容? – johnnysports
これは、円でクリップするのにうまく機能するようになったのですか? – jin