pyxen.GridMap

GridMap은 행과 열로 배열된 셀로 구성된 공간 컨테이너입니다.

타일 레이아웃, 셀 크기, 선택적 타일 아틀라스, GridBody를 위한 충돌 공간을 정의합니다.

충돌 개념은 충돌을 참조하세요.


생성자

GridMap(
    *,
    rows=None,
    columns=None,
    size=None,
    image=None
)

모든 매개변수는 키워드 전용입니다.


매개변수

매개변수타입설명
rowsint그리드 행 수
columnsint그리드 열 수
size(width, height)셀 크기 (픽셀)
imagestr타일 아틀라스 이미지 이름

예시

level_map = GridMap(
    rows=10,
    columns=16,
    size=(16, 16),
    image="tileset"
)

GridMap 첨부

생성 시:

level = world.spawn(
    map=GridMap(
        rows=10,
        columns=16,
        size=(16, 16),
        image="tileset"
    )
)

또는 나중에:

entity = world.spawn()
entity.map = GridMap(rows=8, columns=8, size=(16, 16))

속성

map.active

속성타입기본값
activeboolTrue

이 맵에 대해 충돌 시뮬레이션이 실행되는지 제어합니다. False이면 이 맵에 첨부된 GridBody에 대해 바디 이동, 충돌, 콜백이 처리되지 않습니다.

# 충돌 일시 정지 (예: 일시 정지 메뉴)
level.map.active = False

# 충돌 재개
level.map.active = True

타일 수정

map.set()을 사용하여 타일을 구성합니다.

map.set(
    row=0,
    column=1,
    tile=(tile_column, tile_row),
    tag=optional_tag
)

매개변수

매개변수타입설명
rowint그리드 행 인덱스
columnint그리드 열 인덱스
tile(x, y)아틀라스에서의 타일 좌표
tagint선택적 충돌 태그

예시: 타일 설정

level.map.set(
    row=2,
    column=5,
    tile=(3, 1)
)

예시: 충돌 태그 추가

level.map.set(
    row=4,
    column=2,
    tile=(0, 0),
    tag=1  # 벽
)

그리드 좌표

  • 행은 수직으로 증가
  • 열은 수평으로 증가

범위 밖의 인덱스는 안전하게 무시됩니다.


GridMap + GridBody

GridBody는 GridMap과 상호작용하여 충돌, 이동 처리, 트리거 감지를 수행합니다.

GridBody는 GridMap 엔티티의 자식이어야 합니다.

level = world.spawn(
    map=GridMap(
        rows=8,
        columns=8,
        size=(16, 16),
        image="tiles"
    )
)

player = world.spawn(
    body=GridBody(),
    parent=level
)

최소 예시: 기본 레벨

level = world.spawn(
    map=GridMap(
        rows=8,
        columns=8,
        size=(16, 16),
        image="tiles"
    )
)

# 바닥 생성
for r in range(8):
    for c in range(8):
        level.map.set(row=r, column=c, tile=(0, 0))

# 벽 생성
for c in range(8):
    level.map.set(row=0, column=c, tile=(1, 0), tag=1)
    level.map.set(row=7, column=c, tile=(1, 0), tag=1)

태그

tag는 타일별 선택적 메타데이터입니다.

일반적인 용도:

  • 0 — 빈 공간
  • 1 — 벽
  • 2 — 물
  • 3 — 데미지 존

태그는 게임플레이 또는 충돌 시스템에 의해 해석됩니다.