kthss01 / HHP_DodgeGame_Practice

HangHaePlus Coding Athletics (코육대) Prepare
0 stars 0 forks source link

Danmaku Alogrithm init #2

Closed kthss01 closed 1 year ago

kthss01 commented 1 year ago

용어 정리 https://ko.wikipedia.org/wiki/%ED%83%84%EB%A7%89_%EC%8A%88%ED%8C%85

Danmaku Bullet Hell Shooting Barrage

이런게 있는데 Danmaku 로 하기로 함

kthss01 commented 1 year ago

탄막게임 알고리즘 도서를 간단하게 읽어봄 탄 속도, 회전 각도 등이 알고리즘의 핵심으로 보임

kthss01 commented 1 year ago

기본 화면으로 phaser3 예제를 사용하려고 함 group이 적용된 예제로 bullets group 이걸 쓰도록 하자

kthss01 commented 1 year ago

예제 사용해서 danmaku alogirthm 구현 환경 구축함

kthss01 commented 1 year ago

각 발사에 대해서도 확인함 https://labs.phaser.io/edit.html?src=src\physics\arcade\velocity%20from%20angle.js https://labs.phaser.io/edit.html?src=src\physics\arcade\velocity%20from%20angle%202.js

이 2개를 확인해보면 각도에 따른 발사는 아래와 같이 진행

this.physics.velocityFromAngle(cannon.angle, 300, ball.body.velocity);

참고로 시간별로 발사하는건

        this.time.addEvent({
            delay: 100,
            startAt: 100,
            repeat: balls.getLength() - 1,
            callback: () =>
            {
                const ball = balls.getFirstDead();

                ball.setActive(true);

                this.physics.velocityFromAngle(cannon.angle, 300, ball.body.velocity);
            }
        });

위와 같이 진행함

const cannon = this.physics.add.image(400, 300, 'cannon_head')
            .setAngularVelocity(10);

위와 같이 주면 천천히 회전함 참고하자

Phaser.Geom.Line.SetToAngle(line, cannon.x, cannon.y - 50, angle, 128);

위와 같이 하면 가이드라인도 줄 수 있음 -> 이건 다른것도 좀더 처리해줘야함 https://labs.phaser.io/edit.html?src=src\physics\arcade\velocity%20from%20angle%202.js 요거 참고

kthss01 commented 1 year ago

balls 를 이용해서 총알 표현하는 것도 좋을듯 다양한 색깔로 쏠 수 잇음

kthss01 commented 1 year ago

각도로 발사하는 것까지 구현함 해당 부분 조금 정리하면 탄막 알고리즘 구현할 수 있는 환경 완성할 수 있을듯

kthss01 commented 1 year ago

총알을 시간에 따라 발사하는 부분 Bullets 안에서 구현하려 했는데 문제가 있었음 ship 위치 정보가 없어서 구현하지 못함 그래서 MainScene에서 발사하도록 처리하려 했는데 고민해보니까 임의값이니 크게 문제는 안될듯

kthss01 commented 1 year ago

일단 총알 자동 발사 구현했고 랜덤한 값 받아서 발사되도록 처리함 추후에 탄막이 되도록 처리를 해야하는데 이건 책보고 진행해야할 것으로 보임