GameClosure:精灵动画

时间:2013-11-25 15:42:09

标签: javascript animation gameclosure

我在精灵动画方面遇到了一些问题。这是我第一次尝试使用它们而且它们不起作用。

代码非常简短: https://gist.github.com/xxZap/7642660

错误是:

  

未捕获错误:动画帧不存在:null。 SpriteView.js:191

     

获取http://xxx.x.x.x/simulate/pokemonAnimation/native-ios/resources/images/player2/pokemon/venusaur   404(未找到)Image.js:143

这是我的路径屏幕: http://tinyurl.com/npq39jb

1 个答案:

答案 0 :(得分:3)

精灵视图中图像的典型命名约定是:

spriteName-animationName-frameNumber.png

然后,在初始化精灵时,您需要将defaultAnimation设置为默认动画。

在您的情况下,目前您的“动画名称”将是“框架”。我猜这不是故意的,但如果你想简单地看到这项工作而不必重命名你的形象试试这个:

GC.app.venusaur.activeSprite = new SpriteView({
    superview: GC.app.venusaur.view, 
    x: 0, 
    y: 0,
    autosize: true,
    image: 'resources/images/player2/pokemon/venusaur',
    opacity: 1,
    defaultAnimation: 'frame'
  });

请注意,我已将此添加到您的代码中:

    defaultAnimation: 'frame'

您可能想要调用“框架”以外的其他内容。

此外,我看到您在单击时将动画插入静态ImageView。如果设置默认图像,可以使用自从精灵视图一次完成此操作。

你可能有一个这样的帧精灵(而不是ImageView):

venusaur-idle-01.png

你的动画代码如下:

venusaur-walk-01.png
venusaur-walk-02.png
venusaur-walk-03.png
etc.

然后你可以像这样初始化你的精灵:

var mySprite = new SpriteView({
    superview: GC.app.venusaur.view, 
    x: 0, 
    y: 0,
    autosize: true,
    image: 'resources/images/player2/pokemon/venusaur',
    opacity: 1,
    defaultAnimation: 'idle'
  });

然后你可以像这样(点击或随时)动画它:

mySprite.startAnimation('walk');

要循环动画,请执行以下操作:

mySprite.startAnimation('walk');

要停止循环,请执行以下操作:

mySprite.resetAnimation();

这里的文档非常有用: http://docs.gameclosure.com/api/ui-spriteview.html