Cocos2d-x Render-NewCulling

布局与交互:创建动态用户界面
本文介绍如何使用特定的编程技术实现动态布局、背景设置、文本显示、精灵动画和交互事件监听,构建响应式的用户界面。通过调整组件的位置、大小、旋转和缩放,实现复杂的视觉效果和用户交互。


.cpp

  layout->setBackGroundImageScale9Enabled(true);
        layout->setBackGroundImage("green_edit.png");
        
        layout->setPosition(Point(0,0));
        addChild(layout);
        
        
         alert = Text::create("Layout", "fonts/Marker Felt.ttf", 30 );
        alert->setColor(Color3B(159, 168, 176));
        alert->setPosition(Point(widgetSize.width / 2.0f,
                                 widgetSize.height / 2.0f - alert->getSize().height * 3.075f));
        
        layout->addChild(alert);
        auto size = Director::getInstance()->getWinSize();

        /**************************************************************/
        
        auto sprite = Sprite::create("btn-about-normal-vertical.png");
        sprite->setRotation(5);
        sprite->setPosition(Point(size.width/2,size.height/3));
        sprite->setScale(2);
       layout-> addChild(sprite);
        
        auto sprite2 = Sprite::create("btn-about-normal-vertical.png");
        sprite2->setRotation(-85);
        sprite2->setPosition(Point(size.width/2,size.height * 2/3));
        sprite2->setScale(2);
         layout->addChild(sprite2);
        
        auto listener = EventListenerTouchOneByOne::create();
        listener->setSwallowTouches(true);
        
        listener->onTouchBegan = [=](Touch* touch, Event  *event) {
            auto pos = touch->getLocation();
            _lastPos = pos;
            
            
            return true;
            
            
        };
        
        listener->onTouchMoved = [=](Touch* touch, Event  *event) {
            auto pos = touch->getLocation();
            auto offset = pos - _lastPos;
            auto layerPos = getPosition();
            auto newPos = layerPos + offset;
            layout->setPosition(newPos);
            _lastPos = pos;
            
        };
        
        
        
        _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);

        


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杜甲同学

感谢打赏,我会继续努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值