* 목차 *

2025년 9월 9일 화요일

마을 프로젝트 (여러 채의 집 이어 붙이기)

 

마을 프로젝트 (여러 채의 집 이어 붙이기)

집 하나만 있어도 멋지지만, 여러 채의 집이 모이면 마을이 됩니다.
이번에는 앞에서 만든 집 코드를 함수로 묶어서, 여러 위치에 반복해서 불러와 마을을 만들어 볼 거예요.


코드 예시 💻

// 플레이어 위치 불러오기

let player = world.getPlayers()[0];

let pos = player.location;


// 집 크기

let width = 7;

let height = 5;

let depth = 7;


// 집 만드는 함수

function buildHouse(baseX, baseY, baseZ, blockType) {

  // 벽 만들기

  for (let y = 0; y < height; y++) {

    for (let x = 0; x < width; x++) {

      for (let z = 0; z < depth; z++) {

        if (x === 0 || x === width - 1 || z === 0 || z === depth - 1) {

          let newPos = { x: baseX + x, y: baseY + y, z: baseZ + z };

          world.setBlock(newPos, blockType);

        }

      }

    }

  }


  // 지붕

  for (let x = 0; x < width; x++) {

    for (let z = 0; z < depth; z++) {

      let roofPos = { x: baseX + x, y: baseY + height, z: baseZ + z };

      world.setBlock(roofPos, "wood");

    }

  }

}


// 마을 만들기 (집 여러 채 반복)

for (let i = 0; i < 3; i++) {

  for (let j = 0; j < 2; j++) {

    let offsetX = pos.x + (i * (width + 3));

    let offsetZ = pos.z + (j * (depth + 3));

    buildHouse(offsetX, pos.y, offsetZ, "stone");

  }

}



무슨 뜻일까? 🤔

  • buildHouse(...) → 집 짓는 코드를 함수로 만들어서 필요할 때마다 호출해요.

  • for (let i, j) → 반복문 2개를 사용해, 집을 행렬처럼 배치해요.

  • offsetX, offsetZ → 집이 겹치지 않도록 가로·세로 간격을 주었어요.

결과: 돌(stone) 블록으로 된 집들이 규칙적으로 배열되어, 작은 마을이 완성돼요!


챗GPT에게 부탁하기 💬

나:

마인크래프트에서 자바스크립트로 여러 채의 집을 반복해서 배치해 작은 마을을 만드는 코드를 알려줘


챗GPT:
“이 코드를 실행하면 집 여러 채가 모여 작은 마을이 생겨요!”


실습 미션 🎯

  • 집의 블록 종류를 "stone", "wood", "bricks"로 다양하게 바꿔 보세요.

  • 집 간격을 +3 대신 +5로 바꿔 더 넓은 마을을 만들어 보세요.

  • 마을 한가운데 "fountain" 블록(예: 물로 만든 분수)을 설치해 보세요.


마당과 길 만들기

 

마당과 길 만들기

집이 완성되었으니, 이제 주변도 멋지게 꾸며야겠죠?
이번에는 집 앞에 마당을 꾸미고, 길을 만들어서 나만의 공간을 완성해 봅시다.


코드 예시 💻

// 플레이어 위치 불러오기

let player = world.getPlayers()[0];

let pos = player.location;


// 마당 바닥 만들기 (잔디)

let yardWidth = 12;

let yardDepth = 12;

for (let x = 0; x < yardWidth; x++) {

  for (let z = 0; z < yardDepth; z++) {

    let yardPos = { x: pos.x - 2 + x, y: pos.y, z: pos.z - 2 + z };

    world.setBlock(yardPos, "grass_block");

  }

}


// 길 만들기 (집 앞에서 마당 입구까지)

for (let z = 0; z < 8; z++) {

  let pathPos = { x: pos.x + 3, y: pos.y, z: pos.z - z };

  world.setBlock(pathPos, "cobblestone");

}



무슨 뜻일까? 🤔

  • grass_block → 마당 바닥은 풀 블록으로 깔았어요.

  • yardWidth / yardDepth → 마당 크기를 정해요. (12×12 크기)

  • cobblestone → 집 문 앞에서 마당 입구까지 길을 돌로 만들어요.

결과: 집 앞에 넓은 초록 마당이 생기고, 그 위로 돌길이 쭉 연결돼요!


챗GPT에게 부탁하기 💬

나:

마인크래프트에서 자바스크립트로 집 앞에 마당을 만들고 길을 이어주는 코드를 알려줘


챗GPT:
“이 코드를 실행하면 집 앞에 풀밭 마당과 돌길이 생겨요!”


실습 미션 🎯

  • 길을 "stone_bricks"로 바꿔서 튼튼하게 만들어 보세요.

  • 길 양쪽에 "torch"를 세워 가로등처럼 꾸며 보세요.

  • 마당에 "flower" 블록을 심어서 정원을 만들어 보세요.


실내 꾸미기 (침대·책장·등불 넣기)

 

실내 꾸미기 (침대·책장·등불 넣기)

집은 지었지만 아직 비어 있네요.
이제 안에 침대, 책장, 등불을 넣어서 진짜로 살 수 있는 공간처럼 꾸며 봅시다!


코드 예시 💻

// 플레이어 위치 불러오기

let player = world.getPlayers()[0];

let pos = player.location;


// 침대 설치 (1층 한쪽 구석)

let bedPos = { x: pos.x + 2, y: pos.y + 1, z: pos.z + 2 };

world.setBlock(bedPos, "red_bed");


// 책장 설치 (벽 한쪽)

for (let y = 1; y <= 3; y++) {

  let shelfPos = { x: pos.x + 5, y: pos.y + y, z: pos.z + 2 };

  world.setBlock(shelfPos, "bookshelf");

}


// 등불 설치 (천장 중앙)

let lampPos = { x: pos.x + 3, y: pos.y + 5, z: pos.z + 3 };

world.setBlock(lampPos, "lantern");



무슨 뜻일까? 🤔

  • "red_bed" → 빨간 침대를 설치해요.

  • "bookshelf" → 벽을 따라 책장을 3칸 높이로 쌓아요.

  • "lantern" → 집 천장 중앙에 등불을 달아 환하게 밝혀요.

결과: 집 안에 침대가 있고, 옆에는 책장이 있고, 위에는 불빛이 켜져서 아늑한 집이 돼요.


챗GPT에게 부탁하기 💬

나:

마인크래프트에서 자바스크립트로 집 안에 침대, 책장, 등불을 넣는 코드를 알려줘


챗GPT:
“이 코드를 실행하면 집 안이 따뜻하고 아늑한 공간으로 꾸며져요!”


실습 미션 🎯

  • 침대 색을 "blue_bed"로 바꿔 보세요.

  • 책장을 양쪽 벽에 더 설치해 보세요.

  • 등불 대신 "torch"를 여러 개 달아 보세요.


발코니와 난간 만들기

 

발코니와 난간 만들기

2층 집을 더 멋지게 꾸미고 싶다면? 바로 발코니예요!
발코니는 2층 벽 바깥쪽으로 튀어나온 공간이고, 떨어지지 않게 난간을 둘러주면 완성됩니다.


코드 예시 💻

// 플레이어 위치 불러오기

let player = world.getPlayers()[0];

let pos = player.location;


// 발코니 크기

let width = 5;

let depth = 3;

let floorY = pos.y + 6; // 2층 바닥 높이


// 발코니 바닥 만들기

for (let x = 0; x < width; x++) {

  for (let z = 0; z < depth; z++) {

    let floorPos = { x: pos.x + x + 1, y: floorY, z: pos.z - z };

    world.setBlock(floorPos, "birch_planks");

  }

}


// 난간 만들기

for (let x = 0; x < width; x++) {

  let railPos = { x: pos.x + x + 1, y: floorY + 1, z: pos.z - depth + 1 };

  world.setBlock(railPos, "fence");

}

for (let z = 0; z < depth; z++) {

  let leftRail = { x: pos.x + 1, y: floorY + 1, z: pos.z - z };

  let rightRail = { x: pos.x + width, y: floorY + 1, z: pos.z - z };

  world.setBlock(leftRail, "fence");

  world.setBlock(rightRail, "fence");

}



무슨 뜻일까? 🤔

  • floorY = pos.y + 6 → 집의 2층 높이에 맞춰 발코니 바닥을 만들어요.

  • birch_planks → 발코니 바닥은 밝은 색 나무로 꾸몄어요.

  • fence → 발코니 가장자리에 울타리를 두르면 난간이 돼요.

결과: 집 앞 2층에 발코니가 생기고, 난간이 둘러져 있어서 떨어지지 않아요!


챗GPT에게 부탁하기 💬

나:

마인크래프트에서 자바스크립트로 2층 집에 발코니와 난간을 만드는 코드를 알려줘


챗GPT:
“이 코드를 실행하면 집 앞에 발코니가 생기고, 울타리 난간이 자동으로 설치돼요!”


실습 미션 🎯

  • 발코니 바닥을 "stone_bricks"로 바꿔서 돌 발코니로 만들어 보세요.

  • 난간을 "iron_bars"로 바꿔서 튼튼한 느낌을 내 보세요.

  • 발코니 모서리에 "torch"를 달아서 밤에도 밝게 빛나게 해 보세요.