相当于SFML 2.0中的SetFromRect()
SFML 2.0 equivalent of SetFromRect()?
我需要为SFML 2.0找到等效的SetFromRect()。我在一个相机类中使用它,在那里我更新了矩形的位置,精灵可以自由移动。一旦到达屏幕中间,它将开始滚动镜头,用新的坐标重新更新矩形。
void Camera::Update(int x, int y)
{
cameraX = -(ScreenWidth / 2) + x;
cameraY = -(ScreenHeight / 2) + y;
std::cout << "cameraX: " << cameraX << std::endl;
std::cout << "cameraY: " << cameraY << std::endl;
if(cameraX < 0)
cameraX = 0;
if(cameraY < 0)
cameraY = 0;
CameraPosition.setViewport(sf::FloatRect(cameraX, cameraY, cameraX + ScreenWidth, cameraY + ScreenHeight));
std::cout << "cameraX + ScreenWidth: " << cameraX + ScreenWidth << std::endl;
std::cout << "cameraY + ScreenWidth: " << cameraY + ScreenWidth << std::endl;
}
除了:
CameraPosition.setViewport(sf::FloatRect(cameraX, cameraY, cameraX + ScreenWidth, cameraY + ScreenHeight));
它得到了所有正确的数字,但我认为它是错误的函数。
我确实尝试了reset(),但它也不起作用。
编辑:正确的代码是:
CameraPosition.reset(sf::FloatRect(cameraX, cameraY, ScreenWidth, ScreenHeight));
CameraPosition.setViewport(sf::FloatRect(0,0,1,1));
SFML 2.0矩形类型从(左,上,右,下)更改为(左,上,宽,高)。我也经常犯这样的错误。
要移动相机,你需要做的就是移动sf::View
。在您的代码中,这就像调用CameraPosition.setCenter(x, y);
一样简单。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- .cpp和.h文件中的模板专用化声明
- 反向给定链表中的K节点
- 正在查找文档以获得PS4平台的C++中的设备信息
- enum是C++中的宏变量还是整数变量
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 将字符串存储在c++中的稳定内存中
- 文本文件中的单词链表
- 递归函数计算序列中的平方和(并输出过程)
- 如何从C++中的依赖类型中获得它所依赖的类型
- C++中的"inline"关键字
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 用C++中的一个变量定义一个常量
- vector.resize()中的分配错误
- 使用指针从C++中的数组中获取最大值
- arr[-1]在c++中的奇怪行为
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 将值指定给向量(2D)的向量中的某个位置
- 相当于SFML 2.0中的SetFromRect()