gpt4 book ai didi

python - 处理自上而下 View 游戏的旋转 Sprite 的最佳方法是什么

转载 作者:行者123 更新时间:2023-11-28 20:54:32 27 4
gpt4 key购买 nike

我目前正在开发一款俯 View 2d 游戏,我正在学习大量关于 Sprite 和 Sprite 处理的知识。我的问题是如何处理一组可以在多达 32 个方向上旋转的 Sprite 。

目前,给定对象的 Sprite 表包含所有动画,对象始终指向 0 度。现在,由于对象可以在多达 32 个方向上旋转,因此使用原始 Sprite 表的最佳方式是什么。我目前最好的猜测是让程序在对象首次加载到游戏中时基本上动态创建 32 个 Sprite 表,然后该类型对象的所有后续实例将共享这些 Sprite 表。

无论如何,在这方面的任何建议都会有所帮助。让我知道是否需要重新表述这个问题,我知道这有点奇怪。谢谢

编辑:我想需要更多说明。例如,如果我有一个对象,每个对象有 2 个 5 帧的动画,这是一个非常容易创建和组织的 Sprite 表,它是一个简单的 2x5 网格(或 5x2,具体取决于你如何布局)。但问题是现在这两个动画必须在 32 个方向上旋转。这意味着最终将有 320 个单独的 Sprite 。我要说的是(如果我错了,请纠正我)因为我担心性能和帧速率,所以不能在每一帧中动态旋转 Sprite 。那么,组成这2个动画的320个 Sprite 应该怎么组织呢?会不会更好

  • 将其想象成 32 个 2x5 Sprite 表
  • 将 sprite 表拆分成单独的帧,然后每帧有一个 32 个不同方向的数组(所以 10 个数组,每组 32 个方向的 sprite)
  • 其他....?
  • 没关系吗?

谢谢

最佳答案

Sprite 的 32 个方向转换为 32 次旋转 11.25 度。

您可以将预先计算的图像数量减少到 8 只计算前 90 度(11.25、22.5、33.75、45.0、56.25、67.5、78.75、90.0)并动态使用翻转操作.翻转要快得多,因为它们基本上只改变图像从缓冲区复制的顺序。

例如,当显示旋转101.25度的图片时,加载预先计算好的67.5度的图片,然后垂直翻转。

我刚刚意识到这只有在你的图形是对称的情况下才有效;-)

在谈论现代计算机时,您可能不需要优化任何东西。预先计算 Sprite 所用的内存当然可以忽略不计,旋转图像时的 cpu 使用率也可能如此。但是,当您为嵌入式设备编程时,这很重要。

关于python - 处理自上而下 View 游戏的旋转 Sprite 的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1275482/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com