Closed kthss01 closed 1 year ago
이슈 Player 클래스로 만들 때 참고 예제는 Phaser.Physics.Matter.Sprite를 상속 받아 쓰고 있음 나는 Matter가 아니라 Arcade를 쓰고자하는데 다른 것을 상속받는지 알아봐야할듯
https://photonstorm.github.io/phaser3-docs/Phaser.Physics.Arcade.Sprite.html
Arcade.Sprite 도 있음
ArcadeEntity 로 하나 만들어서 사용하기로 함 그게 관리하기 편할거 같음
스프라이트 불러오는거에서 시간이 조금 걸리고 있음
아무 스프라이트나 일단 쓰게
보트 스프라이트 잘라서 이미지 올림
추후에 애니메이션 작업이 필요해보임
화면에 그리는 것은 성공함
기본조작 동작시 matter는 velocity를 설정해주는데 arcade는 어떻게 하는지 확인이 필요함
setAcceleration(x [, y]) 이걸로 동작하는듯
rotate도 조금 다른듯 setAngularVelocity(value)
In Arcade Physics, bodies cannot rotate. They are always axis-aligned. However, they can have angular motion, which is passed on to the Game Object bound to the body, causing them to visually rotate, even though the body remains axis-aligned.
acceleration을 안가지고 있음 애초에 matter도 body에 velocity를 가지고 있는건데 뭔가 잘못 알고있는게 아닌가 싶음 디버깅해보자
body에 acceleration을 가지고 있어야함 (그렇게 구현되어있음) -> 그러나 body가 null임 뭔가 넣어주는게 잘못되었는지도
예제 찾아보니 arcade도 velocity 처리하고 있음
https://labs.phaser.io/edit.html?src=src\physics\arcade\100%20world%20bodies.js
https://www.html5gamedevs.com/topic/22642-why-is-my-extended-sprites-body-null/
sprites 의 이미지 로드하면 physics 는 없음 body를 넣어줘야한다는 얘기라고함
Sprite = image
Body = physics.
https://labs.phaser.io/edit.html?src=src\physics\arcade\extending%20arcade%20sprite.js 요거 참고해서 진행해야할듯
해당 사항 참고해서 아래와 같이 physics도 추가함 다른 방법도 있다고 함
https://labs.phaser.io/edit.html?src=src\physics\arcade\extending%20arcade%20sprite.js
// You can either do this:
scene.add.existing(this);
scene.physics.add.existing(this);
// Or this, the end result is the same
// scene.sys.displayList.add(this);
// scene.sys.updateList.add(this);
// scene.sys.arcadePhysics.world.enableBody(this, 0);
간단하게 화살표키를 이용해서 입력할 수 있도록 처리함 필요하면 wasd로도 수정가능함
플레이어 클래스 만들고 화면에 보여주고 조작 가능하도록 처리하기