【问题标题】:Cocos2d-x (4.0) - Integer pixel scalingCocos2d-x (4.0) - 整数像素缩放
【发布时间】:2020-01-24 20:05:55
【问题描述】:

我刚开始使用 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...

有人知道如何完成这项工作吗?

【问题讨论】:

    标签: c++ opengl cocos2d-x


    【解决方案1】:

    有时你最好清理自己的烂摊子。我为我的问题找到了一个解决方案,乍一看可能看起来太极端了,但这非常适合我的需求。 只需更改 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));
    }
    

    如下所示:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-12
      • 1970-01-01
      • 2020-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多