制作一款打飞机游戏14:资源优化

在目前的开发中,我们发现精灵表的使用效率非常低。尤其是我们的飞船(Jet)精灵,尽管它几乎是对称的,但我们仍在完整地存储其两侧的精灵数据,这造成了空间浪费。

解决方案:镜像精灵
  1. 精灵表重组‌:

    • 首先,我创建了一个新的精灵表,将不必要的测试精灵移除,为优化后的精灵腾出空间。
    • 然后,我将飞船精灵复制到新表中,并开始进行微调。
  2. 去除冗余空间‌:

    • 我注意到飞船精灵的底部有两行完全是黑色的,这是不必要的空间浪费。通过微调精灵的像素位置,我移除了这些黑色行。
  3. 添加轮廓‌:

    • 为了提高飞船在森林等深色背景中的可读性,我决定为飞船添加浅蓝色轮廓。虽然可以通过代码绘制轮廓,但考虑到CPU效率,我选择直接修改精灵图,将轮廓添加到精灵中。
  4. 精灵打包‌:

    • 通过让飞船精灵的轮廓部分重叠,我进一步节省了精灵表空间。这样,两个几乎相同的精灵(一个向左倾斜,一个向右倾斜)可以共享轮廓数据。
  5. SSPR函数应用‌:

    • 我引入了SSPR函数来绘制飞船精灵。SSPR函数比SPR函数更强大,但也需要更多的参数。为了简化调用,我创建了一个名为mySPR的数组,用于存储每个精灵的绘制参数。
    • 通过mySPR数组,我可以轻松地通过单个索引值绘制精灵,而无需每次都输入大量的参数。
      
      function mspr(si,sx,sy)
       local ms=myspr[si]
       sspr(ms[1],ms[2],ms[3],ms[4],sx-ms[5],sy-ms[6],ms[3],ms[4],ms[7]==1)
       
      end

  6. 精灵中心偏移‌:

    我注意到,之前精灵的中心点总是默认在左上角,这在视觉上并不直观。因此,我在mySPR数组中添加了偏移量参数,允许我们更灵活地定位精灵的中心点。
  7. 镜像精灵实现‌:

    为了进一步节省空间,我设计了一个系统,允许我们仅存储精灵的一半数据,并通过镜像功能绘制另一半。我在mySPR数组中添加了一个标志位,用于指示精灵是否需要被镜像绘制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值