【问题标题】:Spritesheet or Separated PNGs?精灵表或分离的PNG?
【发布时间】:2013-11-15 11:55:10
【问题描述】:

所以,我正在开发一款小型独立游戏,为此我制作了自己的动画系统,目前它非常有效,但我对添加 20-30 后它的运行方式有些怀疑-100 多个动画,因为(如标题所述)每一帧都是不同的图像,位于单独的文件夹中。

所以问题是:在我添加更多动画之后,这将如何工作?它会导致更长的加载时间或更差的性能吗?我不完全确定,因为例如。 spritesheet 上相同动画的文件大小,如果分开,则几乎相同。

【问题讨论】:

  • 这个问题可能过于模糊,无法得到真正的答复。有太多未指定的事情,并且可能有太多令人困惑的性能变化来源,无法非常准确地查明任何事情。问题可能会归结为您从每个帧上获取每个动画的数据的位置,以及响应所有图像的随机访问的速度有多快。 (但请注意,我既不是游戏开发者,也不是动画师/图形程序员。)
  • 是的,问题更像是:“你认为哪个更有效?”我想知道是否有人对这个话题有真正的经验
  • 这就是我评论第一部分的重点。没有关于操作系统、文件系统、内存大小、磁盘速度、磁盘缓存、RAM 速度等的更多详细信息。我认为没有任何真正的答案。除了内存通常比其他(磁盘/等)I/O 访问更快的声明。
  • 但我的问题不是要找出它是否适用于特定的计算机,我问的是普通用户,如果第一种方法或另一种方法更有效或者它们是相同的,我不想知道具体的 fps 值,我想知道另一个是否更好。

标签: animation memory-management lua love2d


【解决方案1】:

在做出此类决定时,您应该问自己的问题是“如果我现在选择更简单的解决方案,以后需要复杂的解决方案,那么切换的成本是多少?”

在这种情况下,切换涉及:

  1. 切换动画系统以使用精灵表而不是单个图像。如果您使资源获取和动画调用干净的接口,这将非常容易,并且不会太糟糕,除非您在代码中做了一些非常可怕的事情。

  2. 获取一个程序,将您的各个精灵组合成精灵表。快速谷歌搜索会找到几十个执行此操作的简单程序,但如果您出于某种原因需要编写自己的程序,它也不应该那么糟糕。

所以,我不回答的答案是你可能不应该关心并且如果你仍然关心,只需花一两个小时并尝试两者

【讨论】:

  • 哦,好吧,因为我的游戏仍处于早期阶段,我仍然可以从一个切换到另一个,但如果没有区别,那么我可能会坚持使用当前的。或者我可能会保留它以备后用。实际上,使用/编码/创建基于 spritesheet 的动画更容易,但是如果我想稍后对可能需要分离图像的那些图像做一些更复杂的事情怎么办。例如。如果我想更改特定框架的尺寸,那么我可能需要当前的解决方案。所以我想我会保留当前的。
猜你喜欢
  • 2022-11-04
  • 1970-01-01
  • 2021-02-13
  • 2013-01-04
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多