Example #1
0
Sprite3DWithOBBPerfromanceTest::Sprite3DWithOBBPerfromanceTest()
{
    auto listener = EventListenerTouchAllAtOnce::create();
    listener->onTouchesBegan = CC_CALLBACK_2(Sprite3DWithOBBPerfromanceTest::onTouchesBegan, this);
    listener->onTouchesEnded = CC_CALLBACK_2(Sprite3DWithOBBPerfromanceTest::onTouchesEnded, this);
    listener->onTouchesMoved = CC_CALLBACK_2(Sprite3DWithOBBPerfromanceTest::onTouchesMoved, this);
    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
    auto s = Director::getInstance()->getWinSize();
    initDrawBox();
    
    addNewSpriteWithCoords(Vec2(s.width/2, s.height/2));
    MenuItemFont::setFontName("fonts/arial.ttf");
    MenuItemFont::setFontSize(65);
    auto decrease = MenuItemFont::create(" - ", CC_CALLBACK_1(Sprite3DWithOBBPerfromanceTest::delOBBCallback, this));
    decrease->setColor(Color3B(0,200,20));
    auto increase = MenuItemFont::create(" + ", CC_CALLBACK_1(Sprite3DWithOBBPerfromanceTest::addOBBCallback, this));
    increase->setColor(Color3B(0,200,20));
    
    auto menu = Menu::create(decrease, increase, nullptr);
    menu->alignItemsHorizontally();
    menu->setPosition(Vec2(s.width/2, s.height-65));
    addChild(menu, 1);
    
    TTFConfig ttfCount("fonts/Marker Felt.ttf", 30);
    _labelCubeCount = Label::createWithTTF(ttfCount,"0 cubes");
    _labelCubeCount->setColor(Color3B(0,200,20));
    _labelCubeCount->setPosition(Vec2(s.width/2, s.height-90));
    addChild(_labelCubeCount);
    _hasCollider = false;
    addOBBCallback(nullptr);
    scheduleUpdate();
}
Example #2
0
void CameraCullingDemo::onEnter()
{
    CameraBaseTest::onEnter();

    schedule(schedule_selector(CameraCullingDemo::update), 0.0f);
    
    auto s = Director::getInstance()->getWinSize();
    /*auto listener = EventListenerTouchAllAtOnce::create();
    listener->onTouchesBegan = CC_CALLBACK_2(Camera3DTestDemo::onTouchesBegan, this);
    listener->onTouchesMoved = CC_CALLBACK_2(Camera3DTestDemo::onTouchesMoved, this);
    listener->onTouchesEnded = CC_CALLBACK_2(Camera3DTestDemo::onTouchesEnded, this);
    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);*/
    auto layer3D=Layer::create();
    addChild(layer3D,0);
    _layer3D=layer3D;
    
    // swich camera
    MenuItemFont::setFontName("fonts/arial.ttf");
    MenuItemFont::setFontSize(20);
    
    auto menuItem1 = MenuItemFont::create("Switch Camera", CC_CALLBACK_1(CameraCullingDemo::switchViewCallback,this));
    menuItem1->setColor(Color3B(0,200,20));
    auto menu = Menu::create(menuItem1,NULL);
    menu->setPosition(Vec2::ZERO);
    menuItem1->setPosition(VisibleRect::left().x + 80, VisibleRect::top().y -70);
    addChild(menu, 1);
    
    // + -
    MenuItemFont::setFontSize(40);
    auto decrease = MenuItemFont::create(" - ", CC_CALLBACK_1(CameraCullingDemo::delSpriteCallback, this));
    decrease->setColor(Color3B(0,200,20));
    auto increase = MenuItemFont::create(" + ", CC_CALLBACK_1(CameraCullingDemo::addSpriteCallback, this));
    increase->setColor(Color3B(0,200,20));
    
    menu = Menu::create(decrease, increase, nullptr);
    menu->alignItemsHorizontally();
    menu->setPosition(Vec2(s.width - 60, VisibleRect::top().y -70));
    addChild(menu, 1);
    
    TTFConfig ttfCount("fonts/Marker Felt.ttf", 30);
    _labelSprite3DCount = Label::createWithTTF(ttfCount,"0 sprits");
    _labelSprite3DCount->setColor(Color3B(0,200,20));
    _labelSprite3DCount->setPosition(Vec2(s.width/2, VisibleRect::top().y -70));
    addChild(_labelSprite3DCount);
    
    // aabb drawNode3D
    _drawAABB = DrawNode3D::create();
    _drawAABB->setCameraMask((unsigned short) CameraFlag::USER1);
    addChild(_drawAABB);
    
    // frustum drawNode3D
    _drawFrustum = DrawNode3D::create();
    _drawFrustum->setCameraMask((unsigned short) CameraFlag::USER1);
    addChild(_drawFrustum);
    
    // set camera
    switchViewCallback(this);
    
    // add sprite
    addSpriteCallback(nullptr);
}