0

少し問題があります。各行が一連の画像である複数行の Spritesheet を使用しています。

ただし、スプライトシートを別の高さで開始することはできません(下に移動できるため)。それらはすべて上隅から始まります

 var spriteSheetUp = new createjs.SpriteSheet({
    // image to use
    images: [snakeI],
    // width, height & registration point of each sprite
    frames: {width: 96, height: 90, regX: 0, regY: 290},
    animations: {
        move: [0, 3, "move"]
    }
});

上記で、ピクセル 290 のフレームの使用を開始したいと考えています。

前もって感謝します !

4

1 に答える 1

2

さて、私は複数の行を持つスプライトシートを持っており、次のようなスポットを持つ3行の画像が含まれているとしましょう:

x, x, x, x, // moving animation images
x, x, x, x, // jumping animation images
x, x, x, x, // dying animation images

すべての画像スロットの高さと幅は 80 ピクセルで、スプライト シートで互いに密に積み重ねられ、中央が画像の中央になります。使用する実際の文字サイズは 40 ピクセル (幅と高さ) なのでregX: 40regY: 40スプライト シートです。 img サイズは、幅と高さが 320px になります。(80px * 4 = 320px の 4 つのスロットのため)。

私は次のようにそれらにアクセスします:

var localSpriteSheet = new createjs.SpriteSheet({
        images: [imgPlayer],
        frames: {width:80, height:80, regX:40, regY:40},
        animations: {
            moving: [0,3],
            jumping: [4,7],
            dead: [8,11]
        }
});

ここにパターンが表示されていると思います。たとえばjumping、タイルの番号は 0 から始まるため、開始番号は 4 です。

上記のタイルシートの実際のスロットは次のとおりです。

0, 1, 2, 3, // moving animation images
4, 5, 6, 7, // jumping animation images
8, 9, 10, 11, // dying animation images

うまくいけば、これが役に立ちます - アニメーションの「移動」のスプライトシート開始スロットを見て、その前方から開始するだけです。

// takes 4 images from first line
move: [0, 3] 

// takes 4 images from second line (If spritesheet has 4 images on each line).
jump: [4, 7] 

お役に立てれば!

于 2013-03-08T08:29:05.720 に答える