问题标签 [sprite-sheet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
6309 浏览

java - 在 Java 中读取精灵表的最佳方法是什么?

我正在编写一个基本的 sprite 引擎,以供自己娱乐并更好地熟悉 Java 的 2d API。目前,我正在使用大量具有透明背景的单独 .png 文件来表示我需要的各种精灵和不同的动画帧。大多数“现实世界”游戏开发项目似乎都在使用“精灵表”,其中在单个文件中包含多个精灵或动画帧。此外,人们通常不使用原生图像透明度支持,而是将精灵调色板中没有出现的任意颜色指定为透明颜色。如何以编程方式管理这样的文件?

  • 你怎么知道一个精灵从哪里开始,下一个从哪里开始
  • 你如何处理透明度

可能还有其他我没有想到的因素,所以我可能会在我想到事情或人们提出建议时添加到上面的列表中(请在评论中这样做)。

0 投票
1 回答
971 浏览

iphone - 如何在 iPhone 的 OpenGLES 中实现精灵表?

我正在使用 GLSprite 示例代码示例。我想知道的是我需要对代码做什么才能让它将我的纹理视为精灵表?到目前为止,我所做的唯一修改是创建一个 256 x 256 png 的 16 个较小图像作为我的框架。我以前从未使用过精灵表。谢谢你的帮助。

0 投票
1 回答
2357 浏览

c# - XNA游戏,全屏动画/视频播放

我有一个 XNA 游戏(它是一台老虎机)。

我的艺术家为我制作了一些非常酷的动画,它们或多或少是 1600x1000 和超过 50 帧。

对于到目前为止的所有动画,我一直在使用精灵表。(所有帧都在一个图像文件中,并且在渲染时选择要显示的图像部分)。

问题是您只能加载特定大小的图像。2kx2k 或 4kx4k 取决于您的视频卡。显然,对于这个大型动画来说,将每一帧都放入一个文件是不可能的。

您可以单独加载每个图像并按顺序显示它们吗?(无论如何,在我发现这不是你应该这样做之前,这就是我曾经为较小的动画所做的)

我的问题:

如果有播放这些大型动画的好方法怎么办?

拥有 spritesheet 而不是将帧单独加载为 Texture2D 是否有好处?

是否有(免费)方式在 XNA 中播放全屏视频?

0 投票
1 回答
1035 浏览

animation - Cocos2D SpriteSheet动画问题,我的帧数要大很多

我正在尝试使用 SpriteSheet 运行动画。我的帧每个大小为 320x480,所以我最多可以在纹理图像上放置 6 个帧。但我的动画有时包含从 50 到 200 的帧数,并且都是 320x480 的大小。但是由于尺寸限制为 1024x1024,因此无法在纹理图像上添加这么多帧。有没有其他方法我可以尝试。我可以一个接一个地播放动画吗?它不会妨碍表演吗?拜托,我需要建议。最好的,Vaibhav Tekam。

0 投票
2 回答
2661 浏览

iphone - 在 iphone 上使用大型精灵表

我正在尝试在我的应用程序中使用精灵表动画。第一个带有小精灵表的 POC 工作正常,但是当我将精灵表更改为更大的时,我收到“check_safe_call:无法恢复当前帧”警告并且应用程序退出。

快速搜索显示此问题意味着我的应用程序占用了太多内存或图像尺寸太大。

我的图像是 4.9 Mb,尺寸是 6720 * 10080(哎呀!!)。我读到 iphone 允许最大 3 Mb 图像,尺寸最大为 1024 * 1024。此外,精灵表图像尺寸应该是 2 的幂。

所以请让我知道如何使用这么大的精灵表。

一种方法是将精灵表切割成许多较小的精灵表,并一次使用它们。

请建议您是否知道任何其他/更好的方法来容纳更大的精灵表以及我的精灵表的问题是大小(4.9 Mb)还是尺寸(6720 * 10080)。

(仅供参考,我不想播放电影,所以使用 MP4 文件不是我的选择。我需要根据加速度计输入为精灵表设置动画,我已经能够在我的 POC 中使用较小的精灵表实现这一点.)

谢谢, 斯瓦普尼尔

0 投票
2 回答
5544 浏览

html - 带有 HTML 5 画布的 Sprite-Sheet BLIT?

寻找某人使用 javascript 和 HTML 5 Canvas 标记执行精灵表 BLIT 的示例。

我一直在看Processing.js,但我还没有找到一个明确的例子来说明如何在那里做。

0 投票
1 回答
1758 浏览

iphone - 如何使用多个精灵表?cocos2d/iPhone

我正在尝试使用多个精灵表,因为我不能将它们全部放在一张上,并且有两个使我更容易订购它们(精灵表一个精灵在后面并且具有较低的 zOrder)。我目前正在做:

最后一行因错误而崩溃:由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'Invalid spriteFrame for sprite'SIGABRT

我不允许缓存多个精灵表吗?如果没有,是否有另一种有效的方法来处理这个问题?

0 投票
3 回答
7542 浏览

image - 与图像序列相比,精灵表的优缺点是什么?

我来自 2D 动画背景,所以当我使用动画序列时,我更喜欢使用图像序列。对我来说,这很有意义,因为您可以轻松地从合成/编辑软件中导出图像序列并轻松定义方面。

我是游戏开发的新手,对精灵表的使用感到好奇。有什么优点和缺点。文件大小有问题吗?- 对我来说,一堆小图像似乎与一个大图像相同。此外,定义精灵的每个单独区域似乎很麻烦。

基本上,我不明白您为什么要使用精灵表-请赐教。

谢谢

0 投票
3 回答
333 浏览

objective-c - cocos2d 确定用户在屏幕上触摸的位置

我正在尝试使用 cocos2d sprites 确定用户相对于屏幕上角色的触摸位置。当用户单击精灵左侧时,我希望精灵向左运行,反之亦然。我的问题是,当用户单击一侧并移动到另一侧而不松开触摸时(cctouchended 不会触发),精灵会继续运行,但朝向错误的方向。我将在哪里执行检查(以及如何)以确定用户的触摸是否已移动到角色的另一侧?

我尝试的当前代码:

谢谢。

0 投票
1 回答
5354 浏览

textures - 如何使用 texSubImage2D 在 webgl 中显示精灵?

通过调用 gl.texImage2D,我可以成功显示我的整个精灵 (32x512):

gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);

它像我预期的那样被水平挤压,但它至少在屏幕上呈现。我试图只显示工作表中的第一个 32x32 精灵,我假设我可以简单地使用 gl.texSubImage2D 来实现这种效果。我尝试用 texSubImage2D(修改参数)简单地替换 texImage2D,但我只是在屏幕上看到一个黑框。这是我正在使用的代码:

gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 32, 32, gl.RGBA, gl.UNSIGNED_BYTE, image);

我是否遗漏了有关 texSubImage2D 实施的一些信息?我还有其他步骤吗?还是 texSubImage2D 不是制作精灵表的正确方法?