是否可以将多个小图像或图标存储为单个图像的一部分,以便我的网页可以从单个GET请求中获取所需的所有图标.这将有助于我的页面加载更快.
这是我所指的复合图像的一个例子:
http://oi40.tinypic.com/2saaxac.jpg
在我看来,这是一种放在一个文件中的图像阵列.我希望有一些方法可以在项目中使用图像中的每个单独图标.
标题说明了一切.如何在swift和sprite工具包中使用精灵表?我搜索了谷歌,堆栈交换和苹果文档,我无法想出这个.
我来自2D动画背景,所以当我使用动画序列时,我更喜欢使用一系列图像.对我而言,这很有意义,因为您可以轻松地从合成/编辑软件导出图像序列,并轻松定义方面.
我是游戏开发的新手,对使用精灵表感到好奇.有什么优点和缺点.文件大小是个问题吗? - 对我来说,似乎一堆小图像与一个大图像相同.此外,定义精灵的每个单独区域似乎时间繁琐.
基本上,我不明白为什么你会使用精灵表 - 请赐教.
谢谢
我有一个由42帧组成的大型spritesheet(3808x1632).我会用这些帧呈现一个动画,我使用一个线程来加载一个包含所有帧的位图数组,并用一个闪屏等待它的结束.我没有使用SurfaceView(和画布的绘图功能),我只是在我的主布局中的ImageView中逐帧加载.我的方法类似于从spritesheet中加载大量图像 完成实际需要大约15秒,这是不可接受的.
我用这种功能:
for (int i=0; i<TotalFramesTeapotBG; i++) {
xStartTeapotBG = (i % framesInRowsTeapotBG) * frameWidthTeapotBG;
yStartTeapotBG = (i / framesInRowsTeapotBG) * frameHeightTeapotBG;
mVectorTeapotBG.add(Bitmap.createBitmap(framesBitmapTeapotBG, xStartTeapotBG, yStartTeapotBG, frameWidthTeapotBG, frameHeightTeapotBG));
}
Run Code Online (Sandbox Code Playgroud)
framesBitmapTeapotBG是一个很大的spritesheet.看得更深,我在logcat中读到createBitmap函数需要花费很多时间,可能是因为spritesheet太大了.我找到了一个可以在大spritesheet上创建窗口的地方,使用rect函数和canvas,创建要在数组中加载的小位图,但它并不是很清楚.我在谈论那篇文章:削减位图的一部分
我的问题是:如何加速spritesheet切割?
编辑:我正在尝试使用这种方法,但我看不到最终的动画:
for (int i=0; i<TotalFramesTeapotBG; i++) {
xStartTeapotBG = (i % framesInRowsTeapotBG) * frameWidthTeapotBG;
yStartTeapotBG = (i / framesInRowsTeapotBG) * frameHeightTeapotBG;
Bitmap bmFrame = Bitmap.createBitmap(frameWidthTeapotBG, frameHeightTeapotBG, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bmFrame);
Rect src = new Rect(xStartTeapotBG, yStartTeapotBG, frameWidthTeapotBG, frameHeightTeapotBG);
Rect dst = new Rect(0, 0, frameWidthTeapotBG, …Run Code Online (Sandbox Code Playgroud) 我已经建立了一个小的ipad游戏,spritesheets和batchnodes到处都是.但是我不知道它们是如何工作的,何时添加精灵表,何时将sprite添加到spritebatchnode等.
这是我在初始屏幕(主菜单)中所做的:
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"sprites.png"];
screenSize = [CCDirector sharedDirector].winSize;
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"sprites.plist"];
[self addChild:spriteSheet];
Run Code Online (Sandbox Code Playgroud)
在其他类 - 我总是需要使用相同的批处理节点 - >"sprites.png" - 我打电话
CCSprite *someSprite = [CCSprite spriteWithSpriteFrameName:someSpriteFrameName.png];
Run Code Online (Sandbox Code Playgroud)
并将其添加到self.
[self addChild:someSprite]; // I do not understand why I would add my sprite to the batch node instead of self
Run Code Online (Sandbox Code Playgroud)
所以情况如下:
我有一个名为"sprites.png"的文件,我所有的精灵都在这里.
我似乎并没有完全掌握这个概念.我知道为什么使用它.但是如果有人能够以外行的方式再次向我解释一切,我真的很感激,所以我对我所做的事情100%肯定.请尝试解释它是基本的.
我一直在做很多研究,但是我找不到一个关于将spritesheet渲染为动画的明确示例.我有这个精灵表:

我将非常感谢大量有关加载此示例的示例代码
我正在开发一款Flash游戏,我聘请了一位平面设计师,让它看起来更专业.问题是我不知道是否应该使用timelime动画或精灵表.以下是他的图形示例:www.quickguitartuner.com/monster_reduced.png
我应该如何进行更好的表现?
另外,如果我只是在许多图像中分割精灵表,将它们放在一个数组上并继续使用add/removeChild(),它们在谈论性能时是否会正常工作?
我正在开发一款有spritesheets的游戏,如下所示:

我知道你什么时候spriteBatch.Draw(...)可以绘制图像的某个部分,但是对于我正在做的事情,我需要Texture2D每帧都有一个单独的对象.
我已经完成了谷歌搜索,但我能找到的只是过时的代码:/
UPDATE通过MJP发布的代码这里是非常接近我需要什么......不过,没有一个RenderTarget2D.GetTexture()在XNA 4.0功能.
我目前使用LWJGL Textures在屏幕上绘制图像.我想从精灵表中读取Textures*.我使用光滑的TextureLoader类来加载纹理.
我绘制一个LWJGL形状并将纹理绑定到它上面.
例如:
我画一个图像:
Texture texture = ResourceManager.loadTexture("Images/Tests/test.png");
GL11.glBegin(GL11.GL_QUADS);
{
GL11.glTexCoord2f(0, 0);
GL11.glVertex2f(0, 0);
GL11.glTexCoord2f(0, texture.getHeight());
GL11.glVertex2f(0, height);
GL11.glTexCoord2f(texture.getWidth(), texture.getHeight());
GL11.glVertex2f(width,height);
GL11.glTexCoord2f(texture.getWidth(), 0);
GL11.glVertex2f(width,0);
}
GL11.glEnd();
Run Code Online (Sandbox Code Playgroud)
我认为有一种方法在调用glTexCoord2f时,我可以给它一个精灵偏移并在纹理中加载精灵表,
例如,一个调用将是这样的:
GL11.glTexCoord2f(0+spriteXOffset, texture.getHeight()-spriteYOffset);
Run Code Online (Sandbox Code Playgroud)
但我真的想知道是否有更简单的方法,可能从单个纹理中提取纹理,例如像在这里一样:
只是代替BufferedImage,Texture对象.
感谢您的帮助!
所以,假设我有一个像这样的表:
<table>
<tr>
<td class="t"></td>
<td class="e"></td>
<td class="s"></td>
<td class="t"></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我有一个spritesheet包含4个相同大小的不同图像.所以我使用简单的CSS background-position为每个表格单元格定位背景.这是我的问题:
是否有任何方法(jQuery或纯CSS - 无关紧要)td background-position在鼠标悬停时仅在Y轴上更改ALL ?