繁体   English   中英

点击时如何更改Sprite图像

[英]How To Change A Sprite Image When Tapped

我知道这可能是有史以来最容易回答的问题之一,但是我进行了一些搜索,但似乎找不到答案。...当用户在Cocos2d中点击它时,如何更改子画面图像-X?

我知道的唯一方法是使用如下菜单图像:

auto box = MenuItemImage::create("box_untapped.png", "box_tapped.png");

但这仅会在用户点击图像时更改图像。.即使他们放开按钮,如何使图像保持不变?

这段代码不需要任何菜单/按钮/ ...,而是一个Touch Listener

auto mySprite = Sprite("A.png");

auto touchListener = EventListenerTouchOneByOne::create();
    ///
touchListener->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))
    {
        mySprite->setTexture("B.png"); // Here
        return true;
    }
    return false;
};

touchListener->onTouchEnded(Touch* touch, Event* event)
{
    mySprite->setTexture("B.png"); // Or Here
}
_eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, mySprite);

希望有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM