Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Cocos 2D-X 3.2中放大和缩小场景 我对COCOS 2D X很陌生,但是在C++中有一些不错的背景。我有一个sprite\u rocket(绑在一个Box2D机身上),它偶尔会移动到屏幕的可见视图之外。我希望当精灵接近屏幕边缘时,视图自动缩小,以便精灵始终在视图中。当精灵返回到原始图幅时,视图应缩放回其原始大小_C++_Xcode_Cocos2d X_Cocos2d X 3.0 - Fatal编程技术网

在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中一些有用的相机功能+

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