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", {
因此,我不明白为什么我会收到错误。提前感谢您的帮助
答案 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]]);