2014-08-30 84 views
0

我對Cocos 2D-X很新,但在C++中有一些體面的背景。我有一個精靈_rocket(綁在Box2D身上)偶爾會移動到屏幕的可見視圖之外。我希望視圖能夠在精靈接近屏幕邊緣時自動縮小,以使精靈始終處於視圖中。當精靈回到原始視圖框架時,視圖應該縮回到原始大小。在Cocos 2D-X中放大和縮小場景3.2

我能夠用在更新功能下面的代碼縮小:

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,以便它可以反覆使用來查找屏幕的邊緣。解決這個問題也可能有一個更簡單的方法。

回答

0

我不明白爲什麼winSize應該改變。 如果你指的是_rock的contentsize不會改變

你應該使用

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

他們在cocos2d-x 3 +

解決辦法刪除了一些有用的相機功能的縮放/移動包含層遊戲而不是試圖移動相機。