117 auto listener = EventListenerTouchAllAtOnce::create();
119 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener,
this);
121 auto layer3D=Layer::create();
124 auto s = Director::getInstance()->getWinSize();
127 _camera=Camera::createPerspective(60, (
float)s.width/s.height, 1, 500);
128 _camera->setCameraFlag(CameraFlag::USER1);
133 std::string imgs[3] = {
"Images/Icon.png",
"Images/r2.png"};
134 for (
unsigned int i = 0; i < 4; ++i)
136 Layer *layer = Layer::create();
137 auto billboard = BillBoard::create(imgs[(
unsigned int)(CCRANDOM_0_1() * 1 + 0.5f)]);
138 billboard->setScale(0.5f);
139 billboard->setPosition3D(Vec3(0.0f, 0.0f, CCRANDOM_MINUS1_1() * 150.0f));
140 billboard->setOpacity(
static_cast<uint8_t
>(CCRANDOM_0_1() * 128 + 128));
142 layer->addChild(billboard);
144 layer->runAction( RepeatForever::create( RotateBy::create( CCRANDOM_0_1() * 10, Vec3(0.0f, 45.0f, 0.0f) ) ) );
148 auto billboard = BillBoard::create(
"Images/Icon.png");
149 billboard->setScale(0.2f);
150 billboard->setPosition3D(Vec3(0.0f, 30.0f, 0.0f));
152 auto billboard2 = BillBoard::create(
"Images/r2.png");
153 billboard2->setPosition3D(Vec3(0.0f, 0.0f, 100.0f));
154 billboard->addChild(billboard2);
158 auto sprite3d = Sprite3D::create(
"Sprite3DTest/orc.c3t");
159 sprite3d->setScale(2.0f);
160 sprite3d->addChild(billboard);
161 sprite3d->runAction( RepeatForever::create( RotateBy::create( 10.0f, Vec3(0.0f, 360.0f, 0.0f) ) ) );
177 _camera->setPosition3D(Vec3(0.0f, 100.0f, 230.0f));
178 _camera->lookAt(Vec3(0,0,0), Vec3(0.0f,1.0f,0.0f));
180 TTFConfig ttfConfig(
"fonts/arial.ttf", 16);
181 auto label1 = Label::createWithTTF(ttfConfig,
"rotate+");
183 auto label2 = Label::createWithTTF(ttfConfig,
"rotate-");
185 auto menu = Menu::create(menuItem1, menuItem2,
nullptr);
186 menu->setPosition(Vec2::ZERO);
192 label1 = Label::createWithTTF(ttfConfig,
"Point Oriented");
194 label2 = Label::createWithTTF(ttfConfig,
"Plane Oriented");
199 menu = Menu::create(menuItem1, menuItem2,
nullptr);
200 menu->setPosition(Vec2(0,0));
201 this->addChild(menu, 10);
virtual void update(float dt) override
void menuCallback_orientedPlane(cocos2d::Ref *sender)
cocos2d::Layer * _layerBillBoard
void onTouchesMoved(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
void addNewBillBoardWithCoords(cocos2d::Vec3 p)
std::vector< cocos2d::BillBoard * > _billboards
void addNewAniBillBoardWithCoords(cocos2d::Vec3 p)
void menuCallback_orientedPoint(cocos2d::Ref *sender)
void rotateCameraCallback(cocos2d::Ref *sender, float value)
static cocos2d::Vec2 top()