• cocos2d-x 3.2,Label,Action,Listener,Menu Item等简单用法


    转载自:http://blog.csdn.net/pleasecallmewhy/article/details/34931021

    创建菜单(Menu Item)

    // 创建菜单
    auto menuItem = MenuItemImage::create( "MenuNormal.png",
                                           "MenuSelected.png",
                                           CC_CALLBACK_1(HelloWorld::menuCallback, this) );
    // 设置坐标
    menuItem->setPosition( Vec2(x,y) );
    // 创建菜单
    auto menu = Menu::create(menuItem, NULL);
    menu->setPosition(Vec2::ZERO);
    this->addChild(menu, 1);
    

    创建标签(Label)

    auto label = LabelTTF::create("Hello World", "Arial", 24);
    label->setPosition(Vec2(x,y));
    this->addChild(label, 1);
    

    添加精灵(Sprite)

    auto sprite = Sprite::create("Me.jpg");
    sprite->setPosition(Vec2(visibleSize.width / 2 , visibleSize.height / 2));
    sprite->setAnchorPoint(Vec2(0.5,0.5));
    this->addChild(sprite, 0);
    

    精灵动画(Action)

    auto  actionBy = MoveBy::create(1, Point(100,100));
    auto  easeAction = EaseIn::create(actionBy, 2.5f);
    sprite->runAction(Repeat::create(easeAction, 5));
    

    添加监听(Listener)

    auto listener1 = EventListenerTouchOneByOne::create();
    
    listener1->onTouchBegan = [](Touch* touch, Event* event){
        auto target = static_cast<Sprite*>(event->getCurrentTarget());
        Point locationInNode = target->convertToNodeSpace(touch->getLocation());
        Size s = target->getContentSize();
        Rect rect = Rect(0, 0, s.width, s.height);
                if (rect.containsPoint(locationInNode))
        {
            log("sprite began... x = %f, y = %f", locationInNode.x, locationInNode.y);
            target->setOpacity(180);
            return true;
        }
        return false;
    };
    
    listener1->onTouchMoved = [](Touch* touch, Event* event){
        auto target = static_cast<Sprite*>(event->getCurrentTarget());
        target->setPosition(target->getPosition() + touch->getDelta());
    };
    
    listener1->onTouchEnded = [=](Touch* touch, Event* event){
        auto target = static_cast<Sprite*>(event->getCurrentTarget());
        if (target == sprite)
        {
            log("Click on the sprite");
        }
    };
    
    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, sprite);
    

    获取屏幕大小(Visible)

    Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();
    

    打印调试(CCLOG)

    CCLOG("Characters: %c %c", 'a', 65);
    CCLOG("Decimals: %d %ld", 1977, 650000L);
    CCLOG("Preceding with blanks: %10d", 1977);
    CCLOG("Preceding with zeros: %010d", 1977);
    CCLOG("Some different radixes: %d %x %o %#x %#o", 100, 100, 100, 100, 100);
    CCLOG("Floats: %4.2f %.0e %E", 3.1416, 3.1416, 3.1416);
    CCLOG("%s","A string");

  • 相关阅读:
    poj 2886 Who Gets the Most Candies?(线段树)
    Android开发之SoundPool使用具体解释
    Win8.1应用开发之动态磁贴
    开发人员获取苹果技术支持
    Win32 Windows编程 十二
    华为上机练习题--压缩字符串
    PS 滤镜算法原理 ——马赛克
    JS版汉字与拼音互转终极方案,附简单的JS拼音输入法
    mybatis入门基础----动态SQL
    windows上如何搭建Git Server
  • 原文地址:https://www.cnblogs.com/chz-blogs/p/9381035.html
Copyright © 2020-2023  润新知