easeljs-0.8.2.min 使用平鋪JSON導出瓷磚地圖。EaselJS(0.8.2.min及以上) - 當字符移動時移動JSON生成Sprite地圖XY
我有使用精靈類已經生成的瓷磚地圖(位圖類已被棄用,現在雅需要一段時間來弄清楚)。所以它是標準的32x32正方形產生的。
我有一個角色SpriteSheet,通過鍵盤監聽事件來移動。當我移動角色Right時,我希望生成的地圖可以在角色移動時進行平移和移動,因此看起來角色正在旅行,並且您可以看到地圖的其餘部分在畫布外。
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座標確實上升,但是,地圖不移動並且它保持靜止。一直呆在這一個月,我絕對堅持。我有一個我迄今爲止的工作示例,但我認爲所提供的源代碼可能已經足夠了
SpriteContainer是使用WebGL方法渲染速度更快的替代容器。我會堅持使用雪碧。 – Lanny
你如何移動精靈?你在按鍵上增加x位置嗎?更改後你是否更新了舞臺?你可以發佈該代碼嗎? – Lanny
是的,Sprite類被反覆迭代。 該字符被添加如下: 'code' HeroXCoordinates = HeroPlay0.x + = charWalkSpeed; '/ code' 是的,在新聞發佈上執行gotoAndPlay的按鍵上,字符使用SpriteSheet類,因爲它具有特定的動畫。
我對容器的想法是容納所有這些方塊,然後移動x或y。在之前發佈的代碼中,該位置是: 'code' currentMap.x = currentMap.x + 1; // currentMap.y = currentMap.y - 2; '/ code' – l3l00