如何区分ios中的动画和单个精灵表?
Posted
技术标签:
【中文标题】如何区分ios中的动画和单个精灵表?【英文标题】:how to differentiate animation from single sprite sheet in ios? 【发布时间】:2016-02-18 11:34:12 【问题描述】:我正在开发在没有cocos2D
帮助的情况下使用精灵表的应用程序。
我使用下面的图片作为精灵表
在弓图片中有许多不同的图像。我想让它们在不同的位置动画
我已经按照这个教程,但它只有一个动画
UIKit-TexturePacker
我想在没有 cocos2d 帮助的情况下实现这一点(使用 UIKIT)。
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:你有两个选择:
艰难的路 您按原样获取精灵表并提取精灵的坐标和大小。 有了这些信息,您必须使用数据创建一个 .plist 文件:
<key>green_bird</key>
<dict>
<key>x</key><real>2</real> <!-- x position in the sheet -->
<key>y</key><real>259</real> <!-- y position in the sheet -->
<key>w</key><real>126</real> <!-- width in the sheet -->
<key>h</key><real>255</real> <!-- height in the sheet -->
<key>oX</key><real>13</real> <!-- offset in the sprite, x-->
<key>oY</key><real>2</real> <!-- offset in the sprite, y-->
<key>oW</key><real>150</real> <!-- original width of the sprite -->
<key>oH</key><real>261</real> <!-- original height of the sprite -->
</dict>
加载器处理移除了精灵周围的透明度。这就是 oX、oY、oW 和 oH 值的来源。它们为您提供精灵的原始大小和原始精灵中的位置。您可以将它们留在 oX=0、oY=0、oW 和 oH 与 w 和 h 相同。
简单的方法
您使用一些图形软件(Photoshop、Gimp 等)并从精灵表中分割精灵。
在切割时对齐精灵:使相同动画的所有精灵大小相同。检查它们是否很好地重叠。如果你不这样做,当你想将精灵用作动画时,你会遇到麻烦。他们会颤抖。你不想这样。
最后给它们起个好听的名字:red_bird_01.png、red_bird_02.png等等。
现在将它们拖放到 TexturePacker 上。它将为您重新创建布局 - 包含在动画中使用工作表所需的所有信息。
由于您使用的是教程中的加载程序代码,您还可以打开修剪 - 这会消除透明度 - 重新打包的精灵表将比原始的小得多。
顺便说一句。有一个教程解释了您在 github 上找到的示例代码中的详细信息: https://www.codeandweb.com/blog/2013/05/16/uikit-animations-with-texturepacker
关于游戏开发的最后一句话
如果你想深入研究游戏开发,我真的建议你获得一些游戏开发框架——cocos2d、cocos2d-x、spritekit,...它们会让你的生活变得更轻松。开始可能需要一些时间 - 但他们更有效地处理图形内容,还包含物理引擎和所有其他所需的东西。 在 UIKIT 之上从头开始构建它不是一个好主意。
【讨论】:
以上是关于如何区分ios中的动画和单个精灵表?的主要内容,如果未能解决你的问题,请参考以下文章