• [Cocos2d-x]Cocos2d-x 3.2 学习笔记


    获取屏幕大小(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");
    

    创建菜单(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);

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    微软ASP.NET网站部署指南(4):配置项目属性
    iOS 设计模式之抽象工厂
    How can I move a MySQL database from one server to another?
    CentOS 7 上安装vim(默认未安装)
    How to resize slide dimensions without resizing any objects on the slide?
    CentOS 7.3 上安装docker
    美国留学访学(访问学者)必备信用卡
    西安理工大学税务登记证、银行账号信息
    Oracle联合多个子查询(inner join)
    linux tail
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4626577.html
Copyright © 2020-2023  润新知