问题标签 [atlassprites]

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 投票
2 回答
471 浏览

cocoa - 如何在 Cocos2d 中继承 AtlasSpriteManager?

我需要创建一些将一起移动和旋转的复合精灵。由于可以更改 AtlasSpriteManager 的位置和旋转,因此我一直在尝试子类化,因此我可以创建一堆快捷方式,例如

在内部,它看起来有点像这样

但是,当我运行应用程序时,它会崩溃并出现以下异常

另外,如果我删除“MakeComplexSprite”中的所有代码并让它什么都不做,我也会遇到同样的问题。

看起来 AtlasSpriteManager 只是不喜欢被分类。是这样吗?如果是这样,为什么,我该如何解决它?

更新:

通过创建一个包含 atlasSpriteManager 的 NSObject,我找到了一种解决方法。它可以解决问题,但如果可能的话,我仍然希望将 AtlasSpriteManager 子类化。正如你所描述的那样,我似乎正在实施这个精确度。我正在创建一个这样的实例

哪个...现在我想起来了,这意味着 cSprite 仍然是 AtlasSpriteManager ,因为这就是返回的内容。嗯。何我改变它?

0 投票
2 回答
588 浏览

iphone - AtlasSpriteManager 动画

我正在使用 AtlasSpriteManager 和 AltasSprite 使用 1 个文件创建逐帧动画。我想写一些东西,首先显示一个简单的图片,没有任何动画,例如当我触摸它时,它会显示一些动画并返回到第一个位置和帧。我无法使用以下代码显示没有动画的第一帧:

知道怎么做吗?提前谢谢

0 投票
1 回答
144 浏览

iphone - 如何从 AtlasSpriteManager 创建纹理?

我想要做的是使用 1024x1024 图像创建一个巨大的纹理(宽度超过 1024)。我可以使用 AtlasSpriteManager 检索图像,但每当我尝试从管理器中检索纹理时,我只能获得第一张图像。

我需要在管理器中设置每个 AtlasSprite 的位置以制作冗长的纹理。

有什么建议么?

0 投票
1 回答
1996 浏览

android - 带有裁剪或 VBO 的 Android OpenGL ES draw_texture?

大家好,我正在重新开发我的 android 应用程序以使用 OpenGL 而不是画布(因为它非常慢),我想知道,因为我使用的是平铺表(图集纹理),使用 VBO 或 draw_texture 会更快吗裁剪设置如下:

在听了 Chris Pruett 一段时间后,我发现 draw_texture 对于单个精灵来说无疑是最快的,但如果我正在裁剪图集,这仍然是真的吗?

0 投票
1 回答
716 浏览

windows - 如何使用 Windows Mobile 7 实现 SpriteSheet (Atlas)?

如何使用 Windows Mobile 7 实现 SpriteSheet (Atlas)?

0 投票
1 回答
784 浏览

android - 无法加载框架 cocos2d for Android

我正在尝试从图集中绘制一个精灵。我用 Zwoptex 创建了图集和 plist 文件。将这两个文件放在asset文件夹中..

在代码中,我创建了新的 GameScene 类

并尝试加载它..

在调试器中,我收到以下错误:

04-28 12:45:31.662: WARN/System.err(1147): java.io.FileNotFoundException: level1.png 04-28 12:45:32.642: WARN/System.err(1147): java.io.FileNotFoundException :Screen_01_0029_BG_01-0.png 04-28 12:45:32.622:错误/CCSpriteFrameCache(1147):不支持的 Zwoptex plist 文件格式。

screen_01_0029_BG_01-0.png 指的是level1.png图集中的框架之一...

想法?

急诊室

0 投票
1 回答
105 浏览

iphone - 这条线是什么意思?

init我在一个开源项目的方法中找到了这一行:

kSpriteManager = 0;

然后spriteManager用于此目的

任何想法都会很棒,谢谢。

0 投票
1 回答
70 浏览

objective-c - 混淆重新将 0.99 之前的 Cocos2d-iPhone 代码升级到当前版本 - AtlasSpriteManager

在 0.99 之前的迁移指南的帮助下,我一直在快速完成代码 - http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:migrating_to_0_9 - 但在转换中遇到了困难AtlasSpriteManager、AtlasSprite 到 CCSPrite 等对象。

我还不清楚正在做什么或当前系统在涉及 Board 对象时如何工作。(我发现的例子不包括它)。我知道我需要将 AtlasSprite 实例转换为 CCSprite。

编辑:Board 是 CCLayer 的一个实现

这是我需要升级的代码示例:

提前致谢!

0 投票
1 回答
1751 浏览

cocos2d-iphone - Cocos2d:CCSpriteBatchNode使用的6个疑惑

我想知道如何优化 CCSpriteBatchNode 的使用。换句话说,我理解:

  • 1) 每个 CCSpriteBatchNode 实例对 draw 方法执行一次调用,从而减少 OpenGL 调用,从而显着提高性能
  • 2) 每个 CCSpriteBatchNode 可以引用一个且唯一的纹理图集

我不能 100% 确定,我希望你的回答是:

  • 3) 如果我有一个纹理图集,例如 game-art-hd.png,并在各种类中创建多个 CCSpriteBatchNode,我会得到多个绘制调用吗?换句话说,我假设 CCSpriteBatchNode 的每个实例都会调用自己的 draw 方法,从而导致多个 GL 绘图调用,并且性能低于拥有一个共享批处理节点。我对吗?

    - 4) 如果我在 Sprite 上使用由多个帧组成的动画,我想我应该将动画帧添加到 Sprite 批处理节点。我该怎么做?

    下面是关于我通常如何为精灵设置动画的代码片段。可以注意到,精灵帧没有添加到精灵批处理节点。为了获得更好的性能,我可能应该在初始化时执行此操作。它是否正确?

    /li>
  • 5) 部分参考 4. 您是否确认更倾向于避免在运行时向精灵批处理节点添加和删除精灵?

  • 6) CCSpriteBatchNode 是否只考虑可见设置为 true 的精灵或位置实际上在屏幕区域之外的精灵?


关于 3 的其他注意事项

为了解决我在 3. 中的假设,并减少 CCSpriteBatchNode 实例的数量,我的解决方案将遵循@Suboptimus 在此答案中建议的内容。我喜欢初始化希望与 MainScene 类共享相同批处理节点的类的建议方法,而不是让它们通过 self.parent.parent.(...).parent.finallysharedbatchNode 访问 MainScene

其他人会建议通过使用 self.parent .....parent 并正确投射来引用 MainScene。

这也是软件工程方面的最佳方法吗?

我更喜欢通过使用对 MainScene 类的显式引用来明确添加精灵的位置。如果我在团队中工作或更改类层次结构,这应该会有所帮助。但是这样做的缺点是,如果我想将后续精灵添加到批处理节点,我“需要”存储对它的引用,从而导致需要维护更多代码。

我问这个问题的原因是,如果发现我传统的“软件工程”思维和“Cocos2d 父节点”层次结构方法之间存在轻微冲突。我是游戏编程的新手,我想了解在大型团队中工作的经验丰富的游戏开发人员使用哪种方法:)。H

0 投票
1 回答
64 浏览

android - 将图像放入图集中的最佳方法?

Android 的 AndEngine 框架可以将纹理加载到图集中。Atlas加载纹理的方式对我来说是新的,所以我研究了它。根据我在论坛上阅读的内容,图集是图像数据的一个大矩形区域,其中宽度和高度必须是 2 的幂(尽管它们不必相等,即如果你可以拥有 512x1024想)。纹理被加载到这个区域,这用于在应用程序的生命周期内将它们全部保存在内存中。即使您不使用其中的一些空间,它也会分配所有空间。

考虑到这一点,我可以使用什么过程以最佳方式将任意数量的图形放入同一个图集中?我不打算在应用程序的运行时执行此操作,但是一旦我的游戏的所有图形都已创建,我希望我可以通过某种算法运行图像及其大小,以确定制作图集的大小和位置每个图像都应该加载到其中。一旦我知道了这些事情,我就可以为我的游戏硬编码它们的位置。

这不是 AndEngine 甚至 Android 特定的问题。我确信还有其他面向图形的框架以这种方式加载纹理。