【问题标题】:Zooming in and out of Scene in Cocos 2D-X 3.2在 Cocos 2D-X 3.2 中放大和缩小场景
【发布时间】:2014-08-30 09:03:22
【问题描述】:

我是 Cocos 2D-X 的新手,但在 C++ 方面有一些不错的背景。我有一个精灵_rocket(绑定到 Box2D 主体),它偶尔会移动到我屏幕的可见视图之外。我希望视图在精灵接近屏幕边缘时自动缩小,以便精灵始终在视图中。当精灵返回原始视图框架时,视图应缩放回其原始大小。

我可以在更新函数中使用以下代码进行缩小:

Size winSize = Director::getInstance()->getWinSize();
if ((_rocket->getPosition().x - _rocket->getContentSize().width/2 < 10.0) ||
    (_rocket->getPosition().x + _rocket->getContentSize().width/2 > winSize.width - 10.0) ||
    (_rocket->getPosition().y - _rocket->getContentSize().width/2 < 10.0) ||
    (_rocket->getPosition().y + _rocket->getContentSize().width/2 > winSize.height - 10.0))
{
    this->setScale(this->getScale()-0.005);
}

但是,由于winSize 没有更新,这实际上会永远缩放,直到精灵返回到原始视图。我不知道如何更新winSize,以便可以迭代地使用它来找到屏幕的边缘。也可能有更简单的方法来解决这个问题。

【问题讨论】:

    标签: c++ xcode cocos2d-x cocos2d-x-3.0


    【解决方案1】:

    我不明白为什么 winSize 应该改变。 如果你的意思是 _rock 的 contentsize 不会改变

    你应该使用

    auto size = _rocket->getBoundingBox().size;
    

    【讨论】:

      【解决方案2】:

      他们在 cocos2d-x 3.+ 中删除了一些有用的相机功能

      解决方法是缩放/移动包含游戏的图层,而不是尝试移动相机。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多