//GameScene.h #include "cocos2d.h" class GameScene : public cocos2d::Layer { public: static cocos2d::Scene* createScene(); virtual bool init(); void menuCallback(cocos2d::Ref* pSender); CREATE_FUNC(GameScene); };
//GameScene.cpp #include "GameScene.h" USING_NS_CC; cocos2d::Scene* GameScene::createScene() { auto scene = Scene::create(); //建立一個場景 auto layer = GameScene::create(); //建立一個圖層 scene->addChild(layer); return scene; } //初始化當前的圖層 bool GameScene::init() { if(!Layer::init()) //初始化父類 return false; //獲取屏幕大小 auto visibleSize = Director::getInstance()->getVisibleSize(); auto size = Director::getInstance()->getWinSize(); //建立網格節點 auto nodegrid = NodeGrid::create(); auto sprite = Sprite::create("OnePiece_1.png"); sprite->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2)); nodegrid->addChild(sprite); //這裏注意是將精靈節點加到網格節點上 this->addChild(nodegrid); Director::getInstance()->setDepthTest(false); //使用網格以前須要取消OpenGL的深度測試 // //翻頁效果 // Director::getInstance()->setDepthTest(true); //開啓深度檢測 // auto pageturn = PageTurn3D::create(2, Size(20, 18)); // nodegrid->runAction(pageturn); // // //震動效果 // auto shaky = Shaky3D::create(6, Size(2, 1), 5, false); // nodegrid->runAction(shaky); // // //翻轉效果 // auto flipX = FlipX3D::create(2); // auto reFlipX = flipX->reverse(); // auto delay = DelayTime::create(2); //延時2秒 // nodegrid->runAction(Sequence::create(flipX, delay, reFlipX, NULL)); //透鏡效果 auto lens = Lens3D::create(5, Size(32, 24), Vec2(size.width/2, size.height/2), 300); //參數依次爲:持續時間、網格大小、中心座標、半徑 nodegrid->runAction(lens); // //液體效果 // auto liquid = Liquid::create(3, Size(16, 12), 4, 10); //參數依次爲:持續時間、網格大小、波紋數、振幅 // nodegrid->runAction(liquid); // // //波紋效果 // auto ripple = Ripple3D::create(5, Size(20, 16), Vec2(size.width/2, size.height/2), 300, 6, 50); // nodegrid->runAction(ripple); // // //波浪效果 // auto wave = Waves3D::create(5, Size(25, 20), 6, 30); // nodegrid->runAction(wave); return true; }
備註:一、使用網格以前須要取消OpenGL的深度測試,深度其實就是該象素點在3d世界中距離攝象機的距離,深度緩存中存儲着每一個象素點(繪製在屏幕上的)的深度值,深度測試決定了是否繪製較遠的象素點(或較近的象素點),一般選用較近的,而較遠優先能實現透視的果;node
二、32*24的網格看起來會以爲更舒服。
緩存
--湖南科技大學--賈則棟測試