catnip 이펙트 범위가 이상하네요
디버깅으로 확인했는데, catnip의 써클 범위가 캐릭터가 이동할 때 마다 캐릭터 중심에서 살짝 어긋나는데, 캐릭터의 중심에 고정할 수 있을까요?
import Phaser from "phaser";
import Player from "../characters/Player"
export default class Catnip extends Phaser.Physics.Arcade.Sprite {
// scene의 startingPosition 위치에 데미지 damage와 크기 scale의 Catnip을 생성합니다.
constructor(scene, startingPosition, damage, scale) {
super(scene, startingPosition[0], startingPosition[1], "catnip");
// 화면 및 물리엔진에 추가합니다.
scene.add.existing(this);
scene.physics.world.enableBody(this);
// Catnip은 static 공격입니다. (플레이어 주변에만 발생하고 몹으로 이동하지 않음)
scene.m_weaponStatic.add(this);
// 데미지를 멤버 변수로 설정해줍니다.
this.m_damage = damage;
// 크기, 투명도, depth를 설정해줍니다.
this.scale = scale;
this.alpha = 0.5;
this.setDepth(5);
// catnip은 동그랗게 생겼으므로 물리적 영역을 원으로 설정해줍니다.
this.setCircle(30);
// 애니메이션을 재생합니다.
this.play("catnip_anim");
}
// 플레이어가 움직이면 Catnip도 따라 움직여야 하므로 move 메서드를 만들어주었습니다.
move(vector) {
this.x += vector[0] * 4;
this.y += vector[1] * 4;
}
}
回答 2
0
안녕하세요.
현재 이동과 관련된 코드는 PlayingScene.js의 movePlayerManager 메서드에서 관리하고 있는데, player를 이동하는 코드와 weapon을 이동하는 코드의 순서가 보장되지 않아 발생하는 문제로 생각됩니다.
movePlayerManager() {
this.m_player.move(vector);
this.m_weaponStatic.children.each(weapon => {
weapon.move(vector);
}, this);
}다음과 같은 두 방법을 시도해보실 수 있겠습니다.
player의 move 메소드 내로 weapon을 move시키는 코드를 이동시킵니다.
AI 답변으로 적혀져 있는 방법대로, catnip의 move 메소드를 player의 좌표를 가져와 직접 대입하는 방식으로 변경합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
catnip의 써클 범위가 캐릭터 중심에서 어긋나지 않고 고정되게 하려면, Catnip 클래스의 move 메소드에서 캐릭터의 위치를 직접 지정하는 방식으로 수정하는 것이 좋을 것 같습니다.
캐릭터의 위치를 Catnip의 위치로 직접 업데이트하는 예시는 다음과 같습니다:
move(playerX, playerY) {
this.x = playerX;
this.y = playerY;
}
이 변경을 적용한 후, 캐릭터가 움직일 때 Catnip의 move 메소드를 호출하되, 캐릭터의 현재 위치인 x, y 좌표를 인수로 전달해야 합니다. 이렇게 하면 Catnip이 캐릭터의 중심에 항상 고정되어 따라가게 됩니다.
추가적으로, Player 클래스에서 캐릭터가 이동할 때 마다 Catnip의 move 메소드를 호출하는 로직도 필요합니다. 예를 들어, 캐릭터가 움직일 때마다 해당 캐릭터의 x, y 위치를 Catnip의 move 메소드에 전달해주면 됩니다.
이렇게 수정하면, Catnip의 써클 범위가 캐릭터가 이동할 때마다 캐릭터 중심에 고정되어 어긋나지 않게 될 것입니다.
3강 질문
0
18
1
74. 데이터 캐시 - 1 (이론) 강의 영상 누락
0
29
1
2강 nodejs 3단계 설명 질문
0
34
1
imagesLoaded에 관한 질문
0
19
2
useEffect와 lifecycle문의
0
27
2
physics.closest()는 중심점 기준인가요, 충돌 영역 기준인가요?
0
82
1
player, mob, background 이미지
0
64
2
이미지가 불러와지지 않습니다.
1
148
2
node 버전 문의드립니다.
1
180
2
노드.js 버전 질문
0
431
2
npm start 관련 에러 질문
0
352
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

