【发布时间】: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