最近项目中用到了cocos2dx来开发一个基于陀螺仪的demo,忙了半个星期,一边学习一边开发,总算搞了出来。这里备份下开发中学习到的一些cocos2dx知识。
cocos2dx遮罩的使用
开发demo的时候用到了遮罩,实现起来比较简单,这里备份下代码:
void XXLayer::visit( void ) { glEnable(GL_SCISSOR_TEST); float scaleX = 1; float scaleY = 1; #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) scaleX = scaleY = CCEGLView::sharedOpenGLView()->getFrameZoomFactor(); #endif CCPoint leftdown = XXXX; glScissor(scaleX * leftdown.x,scaleY * leftdown.y, scaleX * (spriteSize.width), scaleY * (spriteSize.height) ); CCNode::visit(); glDisable(GL_SCISSOR_TEST); }
通过重写Layer的visit方法,可以实现遮罩的功能。其中,由于win7开发时,画面比较大,在程序初始化时进行了缩放。代码如下:
bool AppDelegate::applicationDidFinishLaunching() { // initialize director CCDirector* pDirector = CCDirector::sharedDirector(); CCEGLView* pEGLView = CCEGLView::sharedOpenGLView(); pDirector->setOpenGLView(pEGLView); #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) pEGLView->setFrameZoomFactor(0.8f); #endif 。。。 。。。 }
发表评论