问题标签 [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.
javascript - 使用 EaselJS 加载精灵表
作为 EaselJS 的新手,我使用了与源 zip 文件打包在一起的“简单精灵表”示例中的代码。我试图让一个精灵表加载和播放,但只出现第一帧。
我不认为我需要一个ticker函数,因为我没有注册任何事件,我只是从instance1开始播放,帧和画布的大小都相同,如果我animate.gotoAndPlay("instance1");
用animate.play("instance1");
, 但是循环播放动画。有什么建议么?提前致谢。
flash - 如何在 Flash 中正确加载精灵表?
作为 Flash 的普通用户,您知道您可以将图像导出到移动剪辑,逐帧执行,但这不是非常“优化”的方式,在 C++ 中,我现在无法与之交谈的朋友已经阅读了spritesheet 并通过它进行动作和一切,并且由于 AS2 基本上是 C++,因此类似的代码会发生这种情况,但我没有设法找到它。
我想要的是从像这样的精灵表中导入相同大小的图像:http: //j.imagehost.org/0829/WoodyGX_0.jpg
它们都是相同大小的图像放在一起形成精灵表,所以有这个“算法”可以读取每个图像并将其标记为动作使用,但因为我不知道我在问能告诉我的人可能的算法或将这张纸、每张图像的图像读入我的电影剪辑的方法。
现在谢谢。
performance - 有没有办法提高使用相同图像的图像控件的图像内存使用率?
在一个 WP7 游戏中,我正在构建我的Enemy
类被包裹在一个EnemyControl
. 敌人控制使用spritesheet
该敌人类型的所有不同动画状态中的一种。我静态缓存位图的只有 4 张图像。
我遇到的问题是,尽管图像都被缓存(BitmapImage
静态和CacheMode="BitmapCache"
),当控件加载图像时,它会为每个控件添加大约 2 兆的纹理/系统内存。
这是一个重大问题,因为它限制了我可以想象的在屏幕上拥有的敌人数量。
有谁知道如何改善这种情况?或以其他方式解决它?
如果有兴趣,这是xaml:
android - 正确处理精灵表的android调整大小
我有一些我正在开发的游戏的 1 行精灵表。我只在文件夹中提供它们drawable-xhdpi
,我让操作系统在其他密度上为我调整大小。
这种方法会出现以下问题:
我有一个1750
宽度精灵表(xhdpi
宽度),包含5
状态。所以每个单独的精灵都有宽度1750 / 5 = 350
。开启hdpi
时,它会调整大小1313
,因此每个单独的精灵都有宽度1313 / 5 = 262.6
。但是,这实际上是262
,因为 android 不允许您在其中使用浮点数,所以Rect
您必须source
将drawBitmap
.
这样做的问题是我无法正确提取单个精灵:绘制它们时,每个连续的精灵都会向右移动一点,这是我不想要的。有没有办法解决这个问题?我试过了,如果我手动调整它们的大小并在1315
中提供这个调整大小的版本,它会起作用drawable-hdpi
,但这会大大增加 APK 的大小,我不想这样做。
注意 1:每个单独的精灵在每一侧都被很多透明度包围(两边的数量相同)。我可以承受失去这种透明度的一两个像素,我只是不能让中间的不透明部分移位。
注 2:这不仅发生在xhdpi -> hdpi
. 调整到其他密度等级时,同样的问题仍然存在。解决方案必须是通用的:对于任何调整大小系数(或至少6/8
,4/8
和3/8
),对于任何宽度和任何数量的单个精灵。
为了更好地了解问题,假设这是需要绘制(自动调整大小的精灵)的空间:
这是第一帧的绘制方式(取自0 * 262 to 0 + 262
精灵表,*
代表我关心的非透明部分):
这是第二帧的绘制方式(取自1 * 262 to 262 + 262
精灵表):
什么时候应该:
对于每个连续的帧,依此类推(至少我认为每个连续的帧。效果在实际设备上不太明显,但它就在那里)。
java - opengl java glTexCoord 问题。我做得不对吗?
好的,我是一个自学成才的程序员,我正在尝试使用 lwjgl 和 slik-utils 来制作一个库来提供制作游戏的工具。我一直在尝试制作一个精灵表,并且我正在使用 glTexCoord() 来尝试仅获取图像的一部分。但尽我最大的努力,我没有工作。这是绘制代码。
animation - Cocos2d 一个精灵的两个动画
我像这样为我的角色设置动画:
这很好用,我的角色正在运行,但现在我想要他跳跃时的第二个动画。目前我是这样的:
但是现在我想要一个带有第二个 png 的第二个 plist,所以当角色跳跃时我会得到一个全新的动画。我该如何实施?
ios - Sprit Sheets Vs 动画的 PNG 文件数组
我通过将一组 UIImage 对象传递给下面列出的动画方法,在我的 iOS 应用程序中使用 UIImageView.animationImages 制作了很多动画。当前我的 UIImage 对象数组包含单独的 PNG 文件。我知道我可以通过使用 & 传递 Sprite Sheet 而不是传递一组单独的 PNG 文件来制作类似的动画。一个比另一个有什么优势,或者 Sprite Sheet 用于不同的目的?
actionscript-3 - AS3 Starling Framework Texture Atlas TypeError #1007
我是 Starling 框架的新手,目前正在学习如何使用它。
我已经使用 starling 框架从嵌入的 PNG 文件创建了纹理,该框架可以完美地工作并显示在屏幕上,但我正在尝试让 spritesheet(Texture Atlas)工作,它给了我这个:
“错误 #1007:在非构造函数上尝试实例化。”
从我所做的所有研究中,我拥有的代码应该可以工作。
这是我的资产类中的适用代码。
cocos2d-iphone - 带面具的 Cocos2d 动画
我有一个人走路的动画。背景图像包含一些树。我有一个带有这些树的面具,我想将它应用在那个人身上,所以看起来那个人在树后面走。
这是我的代码:
结果是这个人走在树后面,但我的面具在背景上显示为黑色阴影。如何不显示蒙版而是将其应用于动画?
memory-management - 如何有效地使用精灵表?
我想做的事:
我想使用精灵表来加载游戏中的所有敌人。一旦它们被好人摧毁或离开屏幕,它们就必须被移除。我有 6-7 个敌人,其中一些是动画。我将多次重复使用它们。我想从内存中有效地加载和卸载它们。
我在做什么:
我首先加载精灵表:
我有一个名为 BadBoys 的类来处理坏人。每次我想创建一个坏人时,我都会创建一个类的实例。在类中,我创建了精灵并将其添加到图层中。
当精灵被破坏时,我从图层中删除它,然后释放该类的实例。
我知道这是一个很好的方法。我想知道的是这是否是最有效的方法?我想到了另一种加载图像的方法:
将图像异步加载到 CCTextureCache。然后使用缓存中的纹理创建一个精灵。将它添加到一个 NSMutableArray 中,它将容纳所有活着的敌人然后当我不再需要它时,我可以通过以下方式摧毁它:
这是更好的方法吗?请分享您的观点和建议。谢谢。