c++ - Cocos2d-x (4.0) - 整数像素缩放
问题描述
我刚从 Cocos2d 开始,我正在努力让屏幕缩放正确:我有一个设计分辨率为 160x144 像素的 glview,我希望能够以整数倍放大这个窗口。问题是屏幕上的所有资产都使用某种双线性过滤器进行了缩放,真的弄乱了游戏的整体外观......下面我现在在我的代码中:
// Set the design resolution
glview->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, ResolutionPolicy::SHOW_ALL);
glview->setFrameSize(designResolutionSize.width * SCALE_FACTOR, designResolutionSize.height * SCALE_FACTOR);
其中 SCALE_FACTOR 可以是 2、4、8...
有人知道如何完成这项工作吗?
解决方案
有时你最好清理自己的烂摊子。我为我的问题找到了一个解决方案,乍一看可能看起来太极端了,但这非常适合我的需求。只需更改 Texture2D (@CCTexture2D.cpp) 的构造函数即可全局禁用抗锯齿。
Texture2D::Texture2D()
: _pixelFormat(backend::PixelFormat::DEFAULT)
, _pixelsWide(0)
, _pixelsHigh(0)
, _maxS(0.0)
, _maxT(0.0)
, _hasPremultipliedAlpha(false)
, _hasMipmaps(false)
, _antialiasEnabled(false) // <<< CHANGE HERE!
, _ninePatchInfo(nullptr)
, _valid(true)
, _alphaTexture(nullptr)
{
backend::TextureDescriptor textureDescriptor;
textureDescriptor.textureFormat = PixelFormat::NONE;
_texture = static_cast<backend::Texture2DBackend*>(backend::Device::getInstance()->newTexture(textureDescriptor));
}
这里的样子:
推荐阅读
- swift - UIStackView 子视图仅在 isHidden 设置为 false 时才动画
- flutter - 如何使 AppBar 居中以及如何减小 PrefrerredSize 中的领先图标大小?
- c# - 如何将 Json 转换为字符串然后显示在列表中
- javascript - 如何在具有自己路径的 Javascript 中使用 FileReader?
- angular - 如何使用 Angular 8 中的列规范将任何对象传递到通用概述中?
- python-2.7 - 如何解决:将 argparse 参数分配给变量 将参数和值都分配给变量
- android - 如何从移动浏览器在 android 中打开添加联系人页面
- ios - 在 UIViewController 被解除后尝试再次呈现它
- c# - PC 通过 TCP/IP 套接字连接到 Raspberry-Pi?从 C# 到 Python
- ios - 根据内容更新 UICollectionView 高度