#include "HelloWorldScene.h" USING_NS_CC; Scene* HelloWorld::createScene() { // 'scene' is an autorelease object auto scene = Scene::create(); // 'layer' is an autorelease object auto layer = HelloWorld::create(); // add layer as a child to scene scene->addChild(layer); // return the scene return scene; } // on "init" you need to initialize your instance bool HelloWorld::init() { if ( !Layer::init() ) { return false; } auto node = CSLoader::createNode("MainScene.csb"); node->setTag(0); this->addChild(node); //위젯에 터치 이벤트 구현하기 //태그를 이용하여 체크박스 위젯 가져오기 auto check = (CheckBox*)node->getChildByTag(3); //생성한 터치 이벤트를 체크박스 터치 이벤트에 등록 check->addTouchEventListener(CC_CALLBACK_2(HelloWorld::onTouch, this)); //ProgressBar를 가져오기. LoadingBar로 가져옴 auto progress = (LoadingBar*)node->getChildByTag(6); //bar의 현재 퍼센트 수치를 가져옴 progress->setPercent(25); //Slider 가져오기. auto slider = (Slider*)node->getChildByTag(7); //터치 이벤트 등록 slider->addTouchEventListener(CC_CALLBACK_2(HelloWorld::onTouch, this)); auto particle = (ParticleSystemQuad*)node->getChildByTag(11); particle->stopSystem(); return true; } void HelloWorld::onTouch(Ref* sender, Widget::TouchEventType type) { auto node = (Node*)this->getChildByTag(0); //sender의 태그를 확인하기 위해 sender를 임의로 node형태로 저장받음 auto node2 = (Node*)sender; switch (type) { case cocos2d::ui::Widget::TouchEventType::BEGAN: break; case cocos2d::ui::Widget::TouchEventType::MOVED: break; case cocos2d::ui::Widget::TouchEventType::ENDED: { if (node2->getTag() == 3) { //체크박스일 경우 auto check = (CheckBox*)node->getChildByTag(3); if ( !check->getSelectedState() ) { CCLOG("selected"); for (int i = 11; i < 31; i++) { auto particle = (ParticleSystemQuad*)node->getChildByTag(i); particle->runAction(DelayTime::create(1)); particle->resetSystem(); } } else { CCLOG("not selected"); for (int i = 11; i < 31; i++) { auto particle = (ParticleSystemQuad*)node->getChildByTag(i); particle->runAction(DelayTime::create(0.2)); particle->stopSystem(); } } break; } else if (node2->getTag() == 7) { //슬라이더일 경우 auto slider = (Slider*)node->getChildByTag(3); CCLOG("slider : %d", slider->getPercent()); break; } } default: break; } } |