街景qq 2015-10-11 02:03 采纳率: 0%
浏览 689

如何再无损压缩图片的情况下减小游戏包的大小?

做单机游戏总是对游戏包的大小有限定,不能压缩图片质量,还有什么好的方法能减小游戏包?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-20 19:21
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 你可以参考下这篇文章:详细解释如何计算一个结构体的大小?
    • 除此之外, 这篇博客: 类与对象(上篇)中的 如何计算类的大小 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      我们先来看类对象的存储方式:
      在这里插入图片描述
      对于类对象存储方式一:每个对象中成员变量是不同的,但是调用同一份函数,如果按照此种方式存储,当一个类创建多个对象时,每个对象中都会保存一份代码,相同代码保存多次,浪费空间

      所以计算机选择存储方式设计二,将成员函数放在公共代码区,避免浪费空间。
      注意:类对象的大小求解的规则跟结构体内存对齐规则一样

      我们知道了类对象是如何存储,接下来我们来求类对象的大小,我们先来看一个例子?

      // 类中既有成员变量,又有成员函数
      class A1 {
      public:
      	void f1(){}
      private:
      	int _a;
      };
      // 类中仅有成员函数
      class A2 {
      public:
      	void f2() {}
      };
      // 类中什么都没有---空类
      class A3
      {};
      

      我们已经知道了类对象的存储方式,可轻松得到类 A1 对象的字节大小,但是我们却不知道 A2 对象的字节大小和 A3 对象的字节大小。我们先来看一条规定。

      规定:如果一个类没有成员,那么他的对象需要给1byte进行占位标识对象存在,这1byte不存储有效数据。

      这样我们就知道了为什么结果如下图所示。
      在这里插入图片描述
      总结:一个类的大小,实际就是该类中”成员变量”之和,当然也要进行内存对齐注意空类的大小,空类比较特殊,编译器给了空类一个字节来唯一标识这个类


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波