개발 - phaser3 강좌

phaser3 강좌(2) 스프라이트 이미지 불러오기

개미v 2024. 10. 7. 14:06

스프라이트 이미지란?

캐릭터가 이동할 때 움직임을 표현할 수 있도록 배열로 구성된 이미지 입니다.

아레 예제 이미지는 하나가 32px × 48px 크기로 10개로 구성 되어 있습니다.

 

스프라이트 이미지 불러오기

<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <title>Making your first Phaser 3 Game</title>
    <!-- Phaser 3 라이브러리 불러오기 -->
    <script src="https://cdn.jsdelivr.net/npm/phaser@3.11.0/dist/phaser.js"></script>
</head>

<body>

    <script type="text/javascript">

        // 게임 설정 구성
        var config = {
            type: Phaser.AUTO, // 렌더링 방식: 자동으로 웹GL 또는 캔버스를 선택
            width: 800,
            height: 600,
            physics: {
                default: 'arcade' // 기본 물리 엔진으로 'arcade' 사용
            },
            scene: {
                preload: preload,
                create: create,
                update: update
            }
        };

        var player;

        // 새로운 게임 객체 생성
        var game = new Phaser.Game(config);

        // 미리 필요한 리소스를 로드하는 함수
        function preload() {
            // 'dude' 스프라이트 시트 불러오기 (각 프레임의 크기는 32x48)
            this.load.spritesheet('dude', 'assets/dude.png', { frameWidth: 32, frameHeight: 48 });
        }

        // 게임의 초기 상태를 설정하는 함수
        function create() {
            // 화면의 가운데에 'dude' 캐릭터 추가 (physics가 적용된 스프라이트)
            player = this.physics.add.sprite(config.width / 2, config.height / 2, 'dude');

            // 'turn' 애니메이션을 정의 (플레이어가 정지할 때 사용)
            this.anims.create({
                key: 'turn',
                frames: [{ key: 'dude', frame: 4 }],// 'dude' 스프라이트의 4번째 프레임 사용
                frameRate: 120
            });

        }

        // 게임 루프 중 매 프레임 호출되는 함수
        function update() {
            // 'turn' 애니메이션 실행
            player.anims.play('turn');
        }
    </script>

</body>

</html>

 

결과화면

스프라이트 이미지의 4번째 프레임만 화면에 보여집니다.