如何在ios中区分动画和单个精灵表?

时间:2015-11-17 07:14:07

标签: ios objective-c xcode animation sprite-sheet

我正在处理使用精灵表而没有cocos2D帮助的应用程序。

我使用下面的图像作为精灵表

enter image description here

在弓图中有许多不同的图像。我想让它们在不同位置制作动画

我已经按照本教程,但它只有一个动画

UIKit-TexturePacker

我想在没有cocos2d(使用UIKIT)的帮助下实现这一目标。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您有两个选择:

艰难的方式 你按照原样获取精灵表并提取精灵的坐标和大小。 有了这些信息,您将不得不使用以下数据创建.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之上从头开始构建它并不是一个好主意。