1229 Director::getInstance()->setClearColor(Color4F(0.5,0.5,0.5,1));
1231 auto s = Director::getInstance()->getWinSize();
1232 auto listener = EventListenerTouchAllAtOnce::create();
1234 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener,
this);
1237 TTFConfig ttfConfig(
"fonts/arial.ttf", 20);
1239 auto label1 = Label::createWithTTF(ttfConfig,
"Linear ");
1241 auto label2 = Label::createWithTTF(ttfConfig,
"Exp");
1243 auto label3 = Label::createWithTTF(ttfConfig,
"Exp2");
1245 auto menu = Menu::create(menuItem1, menuItem2, menuItem3,
nullptr);
1247 menu->setPosition(Vec2::ZERO);
1255 auto layer3D=Layer::create();
1256 addChild(layer3D,0);
1262 auto vertexSource = FileUtils::getInstance()->getStringFromFile(
"Sprite3DTest/fog.vert");
1263 auto fragSource = FileUtils::getInstance()->getStringFromFile(
"Sprite3DTest/fog.frag");
1264 auto program = backend::Device::getInstance()->newProgram(vertexSource, fragSource);
1267 CC_SAFE_RELEASE(program);
1269 _sprite3D1 = Sprite3D::create(
"Sprite3DTest/teapot.c3b");
1270 _sprite3D2 = Sprite3D::create(
"Sprite3DTest/teapot.c3b");
1275 auto fogColor = Vec4(0.5, 0.5, 0.5, 1.0);
1276 float fogStart = 10;
1278 int fogEquation = 0;
1280 SET_UNIFORM(
"u_fogColor", &fogColor,
sizeof(fogColor));
1281 SET_UNIFORM(
"u_fogStart", &fogStart,
sizeof(fogStart));
1283 SET_UNIFORM(
"u_fogEquation", &fogEquation,
sizeof(fogEquation));
1288 _sprite3D1->setRotation3D(Vec3(-90.0f,180.0f,0.0f));
1291 _sprite3D2->setPosition3D( Vec3( 0.0f, 0.0f,-20.0f) );
1293 _sprite3D2->setRotation3D(Vec3(-90.0f,180.0f,0.0f));
1297 _camera=Camera::createPerspective(60, (
float)s.width/s.height, 1, 1000);
1298 _camera->setCameraFlag(CameraFlag::USER1);
1299 _camera->setPosition3D(Vec3(0.0f, 30.0f, 40.0f));
1300 _camera->lookAt(Vec3(0,0,0), Vec3(0.0f, 1.0f, 0.0f));
1307#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
1309 [
this](EventCustom*)
1311 Director::getInstance()->setClearColor(Color4F(0.5,0.5,0.5,1));
1315 auto vertexSource = FileUtils::getInstance()->getStringFromFile(
"Sprite3DTest/fog.vert");
1316 auto fragSource = FileUtils::getInstance()->getStringFromFile(
"Sprite3DTest/fog.frag");
1317 auto program = backend::Device::getInstance()->newProgram(vertexSource, fragSource);
1323 CC_SAFE_RELEASE(program);
1325 auto fogColor = Vec4(0.5, 0.5, 0.5, 1.0);
1326 float fogStart = 10;
1328 int fogEquation = 0;
1330 SET_UNIFORM(
"u_fogColor", &fogColor,
sizeof(fogColor));
1331 SET_UNIFORM(
"u_fogStart", &fogStart,
sizeof(fogStart));
1333 SET_UNIFORM(
"u_fogEquation", &fogEquation,
sizeof(fogEquation));
#define SET_UNIFORM(name, addr, size)
void switchTypeCallback(cocos2d::Ref *sender, int type)
cocos2d::Layer * _layer3D
cocos2d::Camera * _camera
cocos2d::EventListenerCustom * _backToForegroundListener
cocos2d::Sprite3D * _sprite3D1
cocos2d::Sprite3D * _sprite3D2
void onTouchesMoved(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
virtual void update(float dt) override
virtual void onEnter() override
static cocos2d::Vec2 top()
static cocos2d::Vec2 left()