# 바닥 만들기
어떤 아케이드 게임을 만든다고 가정했을때, 적들이 부딪혀도 피해를 받지않는 바닥이 필요할때 유용할거같은 코드다.
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에 포함되어있는지 확인한다.
이런 방법으로 활용해보면 좋다.