inflearn logo
강의

講義

知識共有

[JS] Phaser ゲーム制作 - ヴァンパイア・サバイバーズ風クローン

Attackを追加しよう1

physics.closest()는 중심점 기준인가요, 충돌 영역 기준인가요?

解決済みの質問

82

not easy

投稿した質問数 2

0

this.physics.closest()가 Mob과 플레이어의 거리를 계산할 때
단순히 중심 좌표 기준으로 계산되는 건지, 아니면 물리엔진에서 사용하는 충돌 영역 기준으로 계산되는 건지 헷갈립니다.

javascript phaser

回答 1

0

ahracho

안녕하세요.
this.physics.closest()는 단순히 중심 좌료 기준으로 계산됩니다.
Phaser에서 closest 함수가 실제로 어떻게 구현되어 있는지 링크에서 확인해보시면, 다음과 같이 source에 물리엔진 body가 있다면 body의 center(중심점)을 사용하고 있는 것을 확인하실 수 있습니다!
따라서 몹의 히트박스가 크기가 다양하다면 예상대로 동작하지 않을 확률이 크고, 그런 경우에는 edge to edge로 거리를 구하는 커스텀 로직을 작성하셔야 합니다.

closest: function (source, targets)
{
    if (!targets)
    {
        targets = this.world.bodies.entries;
    }

    var min = Number.MAX_VALUE;
    var closest = null;
    var x = source.x;
    var y = source.y;
    var len = targets.length;

    for (var i = 0; i < len; i++)
    {
        var target = targets[i];
        var body = target.body || target;

        if (source === target || source === body || source === body.gameObject || source === body.center)
        {
            continue;
        }

        var distance = DistanceSquared(x, y, body.center.x, body.center.y); // center 사용

        if (distance < min)
        {
            closest = target;
            min = distance;
        }
    }

    return closest;
},

3강 질문

0

18

1

74. 데이터 캐시 - 1 (이론) 강의 영상 누락

0

29

1

2강 nodejs 3단계 설명 질문

0

33

1

imagesLoaded에 관한 질문

0

19

2

useEffect와 lifecycle문의

0

26

2

player, mob, background 이미지

0

63

2

이미지가 불러와지지 않습니다.

1

148

2

node 버전 문의드립니다.

1

180

2

노드.js 버전 질문

0

431

2

npm start 관련 에러 질문

0

352

2

catnip 이펙트 범위가 이상하네요

0

252

2

addAttackEvent 속도가 너무 빠르면 이런 오류가 발생하네요

0

289

2

hello world 강의 질문이요~

1

413

2

npm start 에러코드가 나와 문의드립니다.

1

520

2

npm start 에러나와 문의드립니다.

2

393

2

[참고] Uncaught Error: createEmitter removed. See ParticleEmitter docs for info : 에러에 대한 해결 방법 공유

2

414

2

Phaser3 질문드립니다!!

2

759

2

모바일 크롬 브라우저에서 동작을 안하는데 PC 에서만 가능한가요 ?

1

295

1

엌ㅋㅋ 클리어를 못하실거 같다고 말씀하시는게 왜케 재밋죠

2

343

0

보스스테이지에서 멈춥니다

1

433

1

[참고] 33강 캣닢어택 강화시 버그 관련

2

607

1

배포 파이프라인

1

434

2

[참고] hello world 강의 중 에셋 사용시 baseURL 수정 필요합니다.

3

443

1

CHAPTER3.1 몹만들기

3

361

1