私のゲームのレベルの幅が画面幅の 3 倍で、プレーヤーが一番左端から開始するとします。このレベルの最初の右端から始まるカメラ フライバイを実装してワールド全体をスクロールし、プレーヤーが先に何を期待できるかを知るにはどうすればよいですか?
ここでこの投稿http://www.cocos2d-iphone.org/forum/topic/9568に出くわしました。これは役に立ちそうなもので、コードのブロックを借りて に入れましたGameWorldLayer
が、うまくいきませんでした。基本的に黒い画面しか表示されません。どうしたの?そして、これを実装するより良い方法は何でしょうか?
-(void)visit {
CGSize screenDims = [[CCDirector sharedDirector] winSizeInPixels];
CGPoint camPos = gameCamera.position;
float camZoom = gameCamera.zoom;
[[CCDirector sharedDirector] setProjection:kCCDirectorProjectionCustom];
//now set your projection
kmGLMatrixMode(KM_GL_PROJECTION);
//save current projection state
kmGLPushMatrix();
kmGLLoadIdentity();
kmMat4 orthoMat;
kmMat4OrthographicProjection(&orthoMat,
camPos.x -screenDims.width/(2*camZoom),
camPos.x +screenDims.width/(2*camZoom),
camPos.y +screenDims.height/(2*camZoom),
camPos.y -screenDims.height/(2*camZoom),
-1000,
1000);
kmGLMatrixMode(KM_GL_MODELVIEW);
kmGLLoadIdentity();
[super visit];
//put it back
kmGLMatrixMode(KM_GL_PROJECTION);
kmGLPopMatrix();
kmGLMatrixMode(KM_GL_MODELVIEW);
kmGLLoadIdentity();
}