easeljs-0.8.2.min タイルマップのTile-mapを使用しました。EaselJS(0.8.2.min以上) - 移動するJSONの移動文字の移動時にスプライトマップのXY
私は既にSpriteクラスを使ってタイルマップを生成しています(ビットマップクラスは廃止されました。したがって、それは標準的な32x32正方形が直交して生成されます。
私は、キーボードのリッスンイベントによって移動する文字SpriteSheetを持っています。私がキャラクターを動かすと、キャラクターが移動したときに移動して移動するように生成されたマップが必要なので、キャラクターが移動しているように見えて、キャンバスから離れた残りのマップを見ることができます。
spriteContainer = new createjs.Container();
for (var y = 0; y < layerData.height; y++) {
for (var x = 0; x < layerData.width; x++) {
// create a new Bitmap for each cell
currentMap = new createjs.Sprite(tilesetSheet);
// layer data has single dimension array
var idx = x + y * layerData.width;
// tilemap data uses 1 as first value, EaselJS uses 0 (sub 1 to load correct tile)
tileLoad = layerData.data[idx] - 1;
currentMap.gotoAndStop(tileLoad);
// orthogonal tile positioning based on X Y order from Tiled
if(moveX == undefined || moveX == 0){
moveX= 0;
} else {}
if(moveY == undefined || moveY == 0){
moveY= 0;
} else {}
currentMap.x = (x * tilewidth - x) + moveX;
currentMap.y = (y * tileheight) + moveY;
// Pan X & Y
// X Minus Pans Right
// Y Minus Pans Down
// currentMap.x = currentMap.x + 1;
// currentMap.y = currentMap.y - 2;
mapX = currentMap.x;
mapY = currentMap.y;
currentMap.setBounds(mapX, mapY, tilewidth, tileheight);
spriteContainer.addChild(currentMap);
// Add bitmap to stage
stage.addChild(currentMap);
}
}
だから私はEaselJSで見つかったが、SpriteContainer、というクラスを持って、私はこれは私がこの作業を取得する必要があるかもしれませんソリューションです考えています。マップが生成され、右矢印のキーリスナーに、私は試しました:
//セットマップ spriteContainer.x = spriteContainer.x + = charWalkSpeed;
私の右の矢印キーを押したときにX座標が上がっているのをデバッガが示していますが、マップは移動せず、静止したままです。これで1ヶ月間これに固執してしまいました。私は今までのものの実例を持っていますが、十分なソースコードが提供されていると思います。
SpriteContainerはWebGLアプローチを使用してより高速にレンダリングするコンテナです。私はスプライトにこだわるだろう。 – Lanny
どのようにスプライトを動かしていますか? keypressでxの位置をインクリメントしていますか?あなたはそれを変更した後でステージを更新していますか?あなたはそのコードを投稿できますか? – Lanny
さて、Spriteクラスは、1平方メートルあたり何度も反復されます。 文字が次のように追加されます。 'code' HeroXCoordinates = HeroPlay0.x + = charWalkSpeed; '/ code' プレスリリースでgotoAndPlayを実行するキープレスでは、文字はSpriteSheetクラスを使用します。これは、その動作に固有のアニメーションを持つためです。
私のアイデアは、すべての四角形を保持してからxまたはyに移動することです。以前に投稿されたコードでは、位置は次のようになります。 'code' currentMap.x = currentMap.x + 1; // currentMap.y = currentMap.y - 2; '/ code' – l3l00