Crafty JS错误说我没有关闭功能

时间:2015-04-06 03:05:36

标签: javascript craftyjs

if (char == 'anime') {
        Crafty.sprite("sprites_hunt_w.png", {
                guy: [1, 2, 27, 31]
            })
            .reel('guy_right', 1000, [
                [1, 64],
                [34, 64],
                [65, 65]
            ])
            .reel('guy_left', 1000, [
                [1, 32],
                [34, 32],
                [65, 33]
            ])
    } else {
        Crafty.sprite("megamanx.gif", {
                guy: [0, 0, 28, 34]
            })
            .reel('guy_right', 1000, [
                [214, 19],
                [248, 19],
                [281, 19],
                [321, 19],
                [352, 19],
                [371, 19],
                [394, 19],
                [427, 19]
            ])
            // }else{
            //console.log("fail")
    }

firefox的控制台说TypeError:Crafty.sprite(...)。reel不是一个函数。这是指

Crafty.sprite("megamanx.gif", { 

我不明白的是,对我而言,它看起来与此行完全相同(除了图像源)

Crafty.sprite("sprites_huntw.png", {

因此,我不明白为什么我会收到错误。提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您尝试将.reel()作为Crafty.sprite返回值的方法。但是Crafty.sprite不返回一个sprite实体 - 它创建一个组件,然后返回全局Crafty对象(这样你就可以在Crafty上链接方法调用)。

因此,您需要将该组件添加到实体以使用它,然后添加SpriteAnimation组件以定义转轴。以下是the docs的一个例子:

// Define a sprite-map component
Crafty.sprite(16, "images/sprite.png", {
    PlayerSprite: [0,0]
});

// Define an animation on the second row of the sprite map (fromY = 1)
// from the left most sprite (fromX = 0) to the fourth sprite
// on that row (frameCount = 4), with a duration of 1 second
Crafty.e("2D, DOM, SpriteAnimation, PlayerSprite").reel('PlayerRunning', 1000, 0, 1, 4);

// This is the same animation definition, but using the alternative method
Crafty.e("2D, DOM, SpriteAnimation, PlayerSprite").reel('PlayerRunning', 1000, [[0, 1], [1, 1], [2, 1], [3, 1]]);