问题标签 [texture-atlas]
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.
animation - 动画从纹理图集创建的精灵数组
我已经从这样的纹理图集中创建了一个精灵数组。
在纹理图集中,玩家区域被命名为player01
和。player02
player03
我把它渲染成这样。
当我执行时,这会引发错误。
“线程“LWJGL 应用程序”java.lang.ArithmeticException 中的异常:/ 为零。”
我对这些错误感到沮丧,我已经在这个问题上浪费了很多时间。
请帮我解决这个问题。
堆栈跟踪:
我也尝试了纹理区域。然后堆栈跟踪看起来像这样:
sprite-kit - 在使用 TextureAtlases (SWIFT 3) 的屏幕保护程序中使用 SpriteKit
我使用 SWIFT 3 和 SpriteKit 制作了一个简单的屏幕保护程序。
我可以让场景显示,但是当我尝试应用纹理图集并为其设置动画时,我得到一个带有动画而不是实际图像的红色 X。
调试器出现以下错误:
2016-12-15 09:35:29.131724 ScreenSaverEngine[1819:52037] 找不到纹理图集“传单”。
我很难过——难道不能在屏幕保护程序中运行的 SpriteKit 中使用纹理图集吗?
有关该项目的更多详细信息:
- 使用 TexturePacker 创建了纹理图集——确认纹理图集在 iOS 测试 SpriteKit 应用程序中有效。
- 使用来自 TexturePacker 站点的示例 SWIFT3 代码。
更新 12/15/16: Rickster 提到屏幕保护程序/插件的 bundle.main 不是我的包,而是主机应用程序包。因此,我的问题是我试图从 screenaverengine.app 包而不是我自己的包中加载资产,这会给我一个“找不到”。
我相信 Flyer.swift(见下面的代码),我需要从我的包中引用并加载 Flyers.atlasc。任何人都知道该语法的外观吗?
根据我收集的信息,我需要在这里以某种方式引用我的应用程序包:
代码:
这是 Flyers.swift 代码:
我有一个由 TexturePacker 生成的 Flyers.atlasc 作为蓝色文件夹导入到项目中。
swift3 - SKTextureAtlas 可以从“我的”包而不是“主机”包加载包吗?
我正在开发 SWIFT3/SpriteKit 屏幕保护程序,并且屏幕保护程序正常工作,但我无法加载纹理,因为当我执行以下操作时:
SKTextureAtlas 正在寻找主捆绑包中的“传单”,当它在内部运行时screensaverengine.app
,它不是纹理所在的捆绑包。
在我旧的基于 obj-c 的屏幕保护程序中,我必须执行以下操作才能从包中加载图像:
在我走在运行时加载图像和创建纹理的路线之前,我想利用 Stackoverflow 系列寻求帮助......想法?
swift - Swift 3 中的动画图集和动态物理体
我使用“Hello World”Sprite-kit 模板做了一个小测试项目,其中有一个由这些帧组成的图集动画:
-
我想展示这个骑士和它的动画。
我想设置一个 DYNAMIC 物理体。
所以我使用了一个工具来分离单帧,我做了一个atlasc
文件夹,所以代码应该是:
输出是:
如您所见,这physicsBody
是静态的,不要尊重动画:这是正常的,因为在动画期间纹理会更改尺寸/大小,而我们不会更改physicsBody
在动作期间保持不变的。
遵循源代码,在 期间没有SKAction.animate
允许更改physicsBody
.
虽然我们使用:
为了为我们动画的每一帧创建身体,这些身体在场景中保持在一起,创造了一个丑陋的奇怪情况,如下图:
因此,正确的做法应该是在动画期间截取帧并动态更改physicsBody
。我们也可以使用update()
from 的方法SKScene
,但我正在考虑扩展。
我的想法是将animation
动作与 a结合起来SKAction.group
,制作另一个自定义动作来检查第一个动作的执行,拦截与当前数组匹配的帧knight.texture
并textures
更改physicsBody
启动外部方法,在这种情况下setPhysicsBody
。
然后,我写了这个:
添加此扩展后,我们将代码的动画部分更改为:
这终于奏效了,输出是:
您知道获得此结果的更好方法或更优雅的方法吗?
ios - 关于在 Xcode 中创建纹理图集的基本问题
我想我可能错误地使用了纹理图集,并想寻求一些建议。
我发现一些在线网站建议我创建一个文件夹,比如说 Ball.atlas,然后在其中添加我的动画帧(ball1、ball2、ball3)。
然后将 ball.atlas 拖放到我的实际 Xcode 内容树中,然后在代码中引用该图集,如下所示:
然后我可以引用 self.ballImages 来显示动画等。
但是,我看到了另一个指南,说只需转到您的 xcassets 文件夹,然后单击“+”,然后单击“新纹理图集”,它就会创建一个文件夹。然后只需将球图像拖到那里。
但是,这里有一个根本区别:在第二种方法中,您可以指定@1x、@2x、@3x,而在第一个示例(拖动文件夹)中无法指定。
我应该做什么?我是否应该不拖任何东西,而只是将所有地图集放入 xcassets 集合中?
谢谢!
swift - 随机化 spritekit 中的不同敌人以向玩家移动
我想知道是否有人可以回答我的问题。我在 Sprite-kit 中使用纹理图集创建了 3 个不同的敌人动画,我想知道是否有一种方法可以在游戏开始时随机选择一个敌人向玩家移动。
android - .atlas 文件中的不同变量意味着什么?
这是 .atlas 文件中打包图像的示例。
java - 纹理到纹理图集和动画
我认为在我的动画中加载许多纹理会导致我的游戏略有滞后,我希望我的数组纹理在 TextureAtlas 中。下面的代码是我的动画代码,它还将获取动画中的纹理帧索引,并在显示纹理索引时执行任务....,我已经有一个名为 shot.pack 的.pack 文件,用于纹理图集,但我不知道如何应用它并使它成为这样。我希望有人能帮帮忙
xcode - 如何在 Xcode 的场景编辑器中使用来自特定图集的纹理
场景编辑器中有没有办法从纹理图集中选择图像?
我想在场景编辑器中使用纹理图集中的图像来创建 SKSpriteNode。问题是我有多个图集,每个图集都包含同名的不同图像。
例如,atlas1 包含 image1、image2、image3,然后 atlas2 也包含名为 image1、image2、image3 的图像,但它们是不同的。只有他们有相同的名字。我想使用来自 atlas2 的 image1,但在媒体库中我只看到来自 atlas1 的 image1,我不知道如何在 atlas2 中选择一个。
android - OpenGL ES:帧率和纹理图集
我注意到纹理图的大小确实对 OpenGL ES 2 应用程序有影响。图集的大小为 2048 X 2048,在三星 Galaxy S7 上使用时,性能几乎与每秒 60 帧一致。即使是 4096 X 4096 也可以,虽然可能会损失一些性能,但不会太多。
如果我现在在三星 Galaxy S3 上编译和运行相同的应用程序,那么如果我使用 2048 X 2048 的纹理图,帧率真的很差。绘制一个框架大约需要 25 毫秒。但是,如果我将纹理图集减小到 1024 X 1024,性能将会提高很多 - 每秒 60 帧。
那么我应该根据设备使用不同大小的纹理图的结论是什么?但究竟大小如何与设备相关联?屏幕尺寸也许?例如 - 屏幕尺寸为 720 X 1280 我使用 1024 X 1024 纹理图,而 1440 X 2560 和 2048 X 2048 纹理图?
还是我的来源有问题?到目前为止,我不知道如何跟踪假设 100 个共享同一个帧缓冲区的精灵。相反,每个精灵都有自己的缓冲区,在 onDrawFrame 中,我为每个缓冲区进行了单独的绘制调用。但我猜 bindBuffer 比 bindTexture 快?
或者我如何将位图加载到 OpenGL 有问题吗?我正在使用国旗
但没有性能提升。
渲染器源
纹理助手
位图解码器(片段)