LuaSTG-Sub icon indicating copy to clipboard operation
LuaSTG-Sub copied to clipboard

提供使用sprite自行组合animation资源的方法

Open BAKAOLC opened this issue 2 years ago • 1 comments

说明

由于 animation 资源的加载方案只有基于区域完全密铺的方案,导致 animation 资源在实际上是一种对资源空间利用率非常低的结构

现有方案的局限

  • 资源必须满足 m*n 的密铺结构
  • 没有类似于 margin 的参数,导致无法剔除无用像素

实际使用遇到的问题

  • 为了提高利用率会对图像做一些特殊排列,但是不一定能满足 m*n 的密铺,可能会缺少几帧
  • 为了提高空间利用率,帧位置可能会出现在不同的位置,且不一定是整齐的
  • 为了提升渲染效率,需求剔除空白像素,但由于缩放渲染的时候的边缘问题因此常规需要添加间隔来避免边缘问题
  • 为了能使用对象自身的渲染方法/避免自行渲染帧/避免自行设置帧导致各种特殊问题,导致必须使用 animation 资源

结论

综合以上来说,我认为需要实现一个新的针对 animation 的加载方案来解决这些问题

BAKAOLC avatar Jun 14 '23 12:06 BAKAOLC

在 0.20.10 中添加了新的加载方法,并进行了初步的资源对象化

目前有一点点问题: SetAnimationCenter 和 SetAnimationScale 方法可能会和通过图片精灵列表创建的 Animation 冲突,目前的解决方法是对这种方式创建的 Animation 加个保护机制,如果尝试通过这些方法来修改状态就报错。

Demonese avatar Jun 17 '23 14:06 Demonese