Cocos 2 dx 3.1.1 cocostudio 1を導入する.4 UI SCENE基本操作

3149 ワード

void TollgateScene::createOprUI()
{
    auto UI = cocostudio::GUIReader::getInstance()->widgetFromJsonFile("OprUi_1.ExportJson");
	this->addChild(UI);
	 /*   */

    Button* rightBtn = (Button*)Helper::seekWidgetByName(UI, "rightbtn");
    Button* quickMoveBtn = (Button*)Helper::seekWidgetByName(UI, "quickMoveBtn");
    Button* leftBtn = (Button*)Helper::seekWidgetByName(UI, "leftbtn");
	 /*   */

    leftBtn->addTouchEventListener(this, toucheventselector(TollgateScene::moveToLeft));
    rightBtn->addTouchEventListener(this, toucheventselector(TollgateScene::moveToRight));
    quickMoveBtn->addTouchEventListener(this, toucheventselector(TollgateScene::quickMove));
}
void TollgateScene::moveToLeft(Ref* sender, TouchEventType type)
{
    switch (type)
    {
    case TOUCH_EVENT_ENDED:
        m_player->moveToLeft();
        break;
 
    }
}
 
void TollgateScene::moveToRight(Ref* sender, TouchEventType type)
{
    switch (type)
    {
    case TOUCH_EVENT_ENDED:
        m_player->moveToRight();
        break;
 
    }
}
 
void TollgateScene::quickMove(Ref* sender, TouchEventType type)
{
    switch (type)
    {
    case TOUCH_EVENT_ENDED:
        m_player->quickMove();
        break;
 
    }
}

scene
   	auto node = SceneReader::getInstance()->createNodeWithSceneFile("publish/NewScene.json");
	if(node)
	{
		addChild(node,0);
	}	

	ComRender *child = (ComRender*)(node->getChildByTag(10003)->getComponent("CCSprite")); 
	auto pEnemy = (Sprite*)(child->getNode()); 
	log("123123:%d", pEnemy->getPositionX());

ループノード
auto node = SceneReader::getInstance()->createNodeWithSceneFile("publish/NewScene.json");
	if(node)
	{
		addChild(node,0);
	}	
	//auto hero = node->getChildByTag(10020);
	//ComRender *child = (ComRender*)(node->getChildByTag(10003)->getComponent("CCSprite")); 
Vector<Node*>  sp_vec = node->getChildByTag(10003)->getChildren(); 
 for( auto& e : sp_vec)
    {
   switch(e->getTag()){
   case	100011 :
 child = (ComRender*)(e->getComponent("CCSprite"));
 pEnemy = (Sprite*)(child->getNode());
 
 log("100011:%d, [%lf, %lf][%lf, %lf]", e->getTag(),pEnemy->getAnchorPointInPoints().x,pEnemy->getAnchorPointInPoints().y, pEnemy->getContentSize().width,pEnemy->getContentSize().height);
 break;
   }
   //log("123123:%d, %s", heros->getTag(), heros->getDescription());
    }

ノードサイズの場所の取得
   	auto node = SceneReader::getInstance()->createNodeWithSceneFile("publish/NewScene.json");
	if(node)
	{
		addChild(node,0);
	}	
	
	ComRender *child;
	Sprite *pEnemy;
	child = (ComRender*)(node->getChildByTag(10003)->getChildByTag(100011)->getComponent("CCSprite"));
	pEnemy = (Sprite*)(child->getNode());
	log("100011: [%lf,%lf]%lf, %lf", pEnemy->getAnchorPointInPoints().x,pEnemy->getAnchorPointInPoints().y,  pEnemy->getContentSize().width,pEnemy->getContentSize().height);