- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 this Udacity course ,我们必须读取 TexturePacker 生成的 JSON 文件从 Sprite 表计算 Sprite 的中心。我们必须考虑 Sprite 是否被 trim 。
带有未 trim Sprite 的 Sprite 表看起来像这样(绿色的空像素):
虽然带有 trim Sprite 的 Sprite 表看起来像这样(绿色的空像素):
正如您可能看出的那样,差异在于从最终的 spritesheet 文件中删除了空像素。
因此,如果我将 32x32 像素的 circle.png
文件添加到我的 TexturePacker spritesheet 中,并且图像的尺寸仅为 24x24,TexturePacker 会将图像 trim 为 24x24 并生成一个 png 文件这个大小(假设只有一个 Sprite )和以下 JSON 文件:
{"frames": [
{
"filename": "circle.png",
"frame": {"x":0,"y":0,"w":24,"h":24},
"rotated": false,
"trimmed": true,
"spriteSourceSize": {"x":5,"y":5,"w":24,"h":24},
"sourceSize": {"w":34,"h":34},
"pivot": {"x":0.5,"y":0.5}
}],
...
}
它详细说明了以下信息:
我认为,为了获得图像的中心,计算sprite.frame.w/2
和sprite.frame.h/2
就足够了>,但是,根据类(class),这个 javascript 应该计算中心:
//sprite is a javascript object that represents a sprite inside the 'frames' array
if (sprite.trimmed) {
cx = sprite.spriteSourceSize.x - (sprite.sourceSize.w * 0.5);
cy = sprite.spriteSourceSize.y - (sprite.sourceSize.h * 0.5);
}
也许这真的很简单,但我无法理解为什么他们使用spriteSourceSize
,因为我们将读取 spritesheet 而不是原始图像。
最佳答案
在你的情况下,圆是居中的。
这提供的值与简单地除以帧大小时得到的值相同。
您的 Sprite (圆圈)也可能位于原始 Sprite 的左上角。右侧和底部均为透明像素。
spriteSourceSize: {"x":0, "y":0, "w":24, "h":24}
因此 x 和 y 坐标都是 0,而不是 5。您的计算将在 x 和 y 方向上偏离 5 个像素。
我看不到类(class)(需要登录),但这就是计算所考虑的内容。
关于javascript - 如何从TexturePacker生成的JSON读取 trim Sprite 的中心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33055758/
使用 libgdx 1.7.0/Android Studio , TexturePacker如果在创建项目时检查工具选项,则应该开箱即用(我也是这样做的)。 事实上,如果我检查我的 build.gra
我正在使用 TexturePackerPro 程序将 Sprite 打包到 .pack 文件中并在 libGDX 中使用它。在某些 sprite 上有 rotate: true 标志,但是当我在 li
谁能描述适用于移相器的 TexturePacker 设置?我正在使用具有 JSON 哈希格式的图集在我的游戏中放置对象......它们甚至没有动画。但是我收到很多“无法设置 frameName:som
我使用 TexturePacker。我打包了我的纹理,我有这个文件: sample.png sample.tps sample.xml sample.java 这些资源是assets/gfx/samp
如何从 TexturePacker 为 EaselJS 创建正确的 spritesheet 导出?导出后我得到这样的东西...... { "images": ["textures.png"], "fr
我正在使用 andengine 为 android 平台开发游戏。我曾经定期检查应用程序的内存使用情况。 这是使用 spritesheet 之前的内存使用情况 后来知道了SpriteSheet和And
一般来说是 android dev 和 andengine 的新手。尝试使用 AndEngineTexturePackerExtension 为 Sprite 制作动画,但我不确定如何为动画 Spri
试图了解(很棒的)LibGDX 框架中的纹理包装器,我需要帮助。 我想绑定(bind)从 TexturePacker 打包的 TextureAtlas 中提取的纹理(根据 Mesh, Color &
我正在尝试根据说明创建一个运行 TexturePacker 的 gradle 任务 here . (请注意,我使用的是 Android Studio 及其目录结构,而不是 Eclipse。)我首先将以
我是 iOS 开发新手。我也开始学习Cocos2D了。 我已阅读本教程:http://www.raywenderlich.com/tutorials#cocos2d 对于初学者来说这是一个极好的教程,
我要运行 runnable-texturepacker.jar (libgdx 纹理打包器)但是当我双击这个文件时没有任何反应。我无法运行纹理打包器。以前我用 gdx-texturepacker.ja
我是一名 android 开发人员,使用 LibGDX 构建我的第一个游戏。读了很多之后,还有一件事我不明白。 我意识到我应该有一组图像,最高分辨率为 2560x1440(为了防止丑陋的放大而不是矢量
我使用TexturePacker构建了一个Sprite Sheet,然后将其加载到我的应用程序中: CCSpriteFrameCache::sharedSpriteFrameCache()->addS
我正在编写一个 .NET 服务来提供与 texturepacker 匹配的数据模式,使 iOS 开发人员可以轻松使用我生成的 spritesheet。这是一个基本节点(我还没有找到文档):
我试图理解为什么通过 initWithSpriteFrame 分配 5 个小型 CCSprite Assets 会在我的应用程序中消耗 16Mb 的内存。这 5 个小 Sprite 每个只有 24Kb
我是一名优秀的程序员,十分优秀!