除了X和Y坐标之外,我如何读取KineticJS Sprite的属性?

时间:2013-09-05 11:59:04

标签: sprite kineticjs

我是使用 KineticJS 的新手,并且正在使用它开发一个简单的2D游戏,包括精灵,碰撞检测等。

我需要访问精灵对象的各种属性(我们在这里称之为spriteObj)。

我可以使用 spriteObj.getX() spriteObj.getY()来获取精灵坐标,这非常有效。

现在我还需要检索精灵的其他属性,例如高度宽度,但似乎没有办法做到这一点。特别是如果我的精灵中有动画,我该如何检索当前帧和/或该动画帧的x,y,高度和宽度。

我真正需要的是 spriteObj.getWidth() spriteObj.getHeight(),但这些不存在。有什么建议吗?我在html5教程页面上看不到任何内容(see here

谢谢, 欧文

1 个答案:

答案 0 :(得分:1)

您正在寻找的方法确实存在,请查看KineticJS Sprite API

以下是KineticJS Sprite Tutorial

以下是您要求的功能:

根据该教程,我添加了一些代码以满足您的需求,请检查console.log以查看实际使用的方法。对于宽度和高度,虽然没有必要,但您必须在 spriteObj 上指定宽度和高度属性,否则它将返回 0

    var blob = new Kinetic.Sprite({
        x: 250,
        y: 40,
        image: imageObj,
        animation: 'idle',
        animations: animations,
        frameRate: 7,
        index: 0,
        width: 80,
        height: 100
    });

用于测试getIndex()功能的新按钮:

// stop animation
document.getElementById('stop').addEventListener('click', function () {
    alert(blob.getIndex());
}, false);

jsfiddle