在Cocos 2D-X 3.2中放大和缩小场景

时间:2014-08-30 09:03:22

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

我对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,以便可以迭代使用它来查找屏幕的边缘。可能还有一种更容易的方法来解决这个问题。

2 个答案:

答案 0 :(得分:0)

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

你应该使用

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

答案 1 :(得分:0)

他们在cocos2d-x 3。+

中删除了一些有用的相机功能

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

相关问题