在Cocos 2D-X 3.2中放大和缩小场景 我对COCOS 2D X很陌生,但是在C++中有一些不错的背景。我有一个sprite\u rocket(绑在一个Box2D机身上),它偶尔会移动到屏幕的可见视图之外。我希望当精灵接近屏幕边缘时,视图自动缩小,以便精灵始终在视图中。当精灵返回到原始图幅时,视图应缩放回其原始大小
我可以在更新功能中使用以下代码缩小:在Cocos 2D-X 3.2中放大和缩小场景 我对COCOS 2D X很陌生,但是在C++中有一些不错的背景。我有一个sprite\u rocket(绑在一个Box2D机身上),它偶尔会移动到屏幕的可见视图之外。我希望当精灵接近屏幕边缘时,视图自动缩小,以便精灵始终在视图中。当精灵返回到原始图幅时,视图应缩放回其原始大小,c++,xcode,cocos2d-x,cocos2d-x-3.0,C++,Xcode,Cocos2d X,Cocos2d X 3.0,我可以在更新功能中使用以下代码缩小: Size winSize = Director::getInstance()->getWinSize(); if ((_rocket->getPosition().x - _rocket->getContentSize().width/2 < 10.0) || (_rocket->getPosition().x + _rocket->getContentSize().width/2 > winSize.wid
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);
}
Size-winSize=Director::getInstance()->getWinSize();
如果((_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))
{
此->设置刻度(此->设置刻度()-0.005);
}
但是,由于不会更新
winSize
,因此在精灵返回到原始视图之前,这实际上是永久性的缩放。我不知道如何更新winSize
,以便可以迭代使用它来查找屏幕边缘。可能还有一种更简单的方法来解决这个问题。我不明白为什么winSize应该改变。
如果你的意思是岩石的含量不会改变
你应该使用
auto size = _rocket->getBoundingBox().size;
他们删除了cocos2d-x3中一些有用的相机功能+ 解决方法是缩放/移动包含游戏的层,而不是尝试移动相机