easeljs-0.8.2.min Tiled JSile export 된 타일 맵이 사용되었습니다.EaselJS (0.8.2.min 이상) - JSON 생성 이동 문자가 이동할 때 Sprite 맵 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, 나는이 생각을하고있다라는 클래스를 가지고하는 것은 내가이 일을 얻을 필요가있다 솔루션입니다. 그래서 Map이 생성되고 오른쪽 화살표 키 리스너에서 지금 시도했습니다 :
//지도 설정 spriteContainer.x = spriteContainer.x + = charWalkSpeed;
My Debugger가 오른쪽 화살표 키를 누를 때 X 좌표가 올라가는 것을 보여 주지만지도가 움직이지 않고 고정되어 있습니다. 지금이 달에 붙어있어 절대적으로 붙어 있습니다. 나는 지금까지 가지고있는 것을 잘 보여주고 있지만, 충분한 소스 코드가 충분하다고 생각한다.
SpriteContainer는 WebGL 방식을 사용하여 더 빨리 렌더링하는 대체 컨테이너입니다. 나는 Sprite를 고집 할 것이다. – Lanny
어떻게 스프라이트를 움직입니까? keypress에서 x 위치를 증가시키고 있습니까? 스테이지를 변경 한 후 스테이지를 업데이트하고 있습니까? 그 코드를 게시 할 수 있습니까? – Lanny
그렇습니다. Sprite 클래스가 반복해서 반복됩니다. 문자가 다음과 같이 추가됩니다. 'code' HeroXCoordinates = HeroPlay0.x + = charWalkSpeed; '/ code' 보도 자료에서 gotoAndPlay를 수행하는 키 누르기에서 문자는 SpriteSheet 클래스의 용도와 관련된 애니메이션을 가지고 있기 때문에 SpriteSheet 클래스를 사용합니다.
컨테이너에 대한 나의 생각은 모든 사각형을 잡고 x 또는 y로 이동하는 것입니다. 이전에 게시 된 코드에서 위치는 다음과 같이 표시됩니다. 'code' currentMap.x = currentMap.x + 1; // currentMap.y = currentMap.y - 2; '/ code' – l3l00