# 바닥 만들기

어떤 아케이드 게임을 만든다고 가정했을때, 적들이 부딪혀도 피해를 받지않는 바닥이 필요할때 유용할거같은 코드다.

tiled에서 오브젝트 레이어를 생성하고 그 좌표에 rect를 생성한다.

const safeAreaPoints = map.filterObjects("SafeArea", ({ name }) => {
  return name.includes("SafeArea");
});

맵에서 필터링된 오브젝트들(여러개라면)의 좌표를 가져온다.

this.safeAreas = safeAreaPoints.map(({ x, y, width, height }) => {
  const safeArea = this.add.rectangle(x, y, width, height);
  // safeArea.setFillStyle(0x00ff00, 0.5);

  return new Phaser.Geom.Rectangle(
    safeArea.x,
    safeArea.y,
    safeArea.width,
    safeArea.height
  );
});

좌표를 가져와서 Phaser.Geom.Rectangle 객체를 생성한다.

눈으로 확인하고싶다면 setFillStyle 메서드를 사용해서 색을 채워보자.

const isSafe = this.safeAreas.some((safeArea) => {
  return Phaser.Geom.Rectangle.Contains(
    safeArea,
    this.player.x,
    this.player.y
  );
});

Contains 메서드를 사용해서 플레이어의 좌표가 safeArea에 포함되어있는지 확인한다.

이런 방법으로 활용해보면 좋다.