Cocos2dx3.2 Crazy Tetrisマスクによる一部の携帯電話の白い画面


前章では、ClipplingNodeを使用してマスクを作成し、不規則なグラフィックを表示することを説明します.しかしこれでAndroid端末に至るまで、一部の携帯電話で問題が発生した.
具体的な問題は、白いスクリーンで、境界(右上隅)に矩形の色のブロックしかありません.
ここでは実はフレームワークがAndroid携帯電話に対してOennGLを引用した場合、設定上stencil buffが有効になっていないという問題です.
onCreateViewコンストラクション関数に次のソリューションを追加します.
Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);
glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);

Cocos 2 dxGLSurfaceViewの実装を開くと、setEGLConfigChooser関数はなく、Cocos 2 dxGLSurfaceViewはGLSurfaceViewから継承されていることがわかります.GLSurfaceViewを検索すると、APIがあります.
void setEGLConfigChooser(int redSize, int greenSize, int blueSize, int alphaSize, int depthSize, int stencilSize)
//Install a config chooser which will choose a config with at least the specified component sizes, and as close to the specified component sizes as possible.

ここで、最後のパラメータはstencilの設定であり、Cocos 2 dxActivityの内部初期化では、次のように設定されていることがわかります.
if (isAndroidEmulator())
   this.mGLSurfaceView.setEGLConfigChooser(8 , 8, 8, 8, 16, 0);

ゲーム制作に関する他のブログのカタログについては、Cocos 2 dx 3を利用しています.2重力版ロシアブロックを作る(Crazy Tetris)