HTML5GAME :: Phaser를 사용하여 2D에서 HTML5 3D 뒤집기 카드 애니메이션을 만드는 방법

달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

카드 게임을 만들 계획이라면 카드를 보여주고 등을 보여야 할 때가 왔습니다. 그런 다음 카드를 뒤집어서 가치를 보여줄 필요가 있습니다.


일반적으로 3D 엔진을 사용하면 축 중 하나를 따라 플립하는 기본 요소 일뿐 아니라 정말 쉬운 작업이됩니다.


우리가 3D 엔진을 사용하지 않을 때해야 할 일은 무엇입니까? Phaser 트윈을 사용하여 플립 운동을 가짜로 만들 수 있습니다.


수직축을 따라 카드를 확대하여 카드가 올라가는 느낌을주고, 카드가 수평선에 가까워 질 때까지 수평축을 따라 축소합니다. 카드가 테이블에 수직 인 순간입니다.


그런 다음 카드 프레임을 변경하고 수평축을 따라 확대하면서 새로운 프레임을 천천히 보여주기 위해 y 축척에 따라 카드를 내립니다.




카드를 클릭하거나 가볍게 두 드립니 다.


다음은 완전히 주석 처리 된 소스 코드입니다.

// 게임 그 자체

var game;

// 게임 옵션이있는 전역 개체

var gameOptions = {

    // 밀리 초 단위로 플 리핑 속도

    flipSpeed: 200, 

    // 줌 비율을 뒤집기. 뒤집을 때 올릴 카드를 시뮬레이트합니다.

    flipZoom: 1.2

}

window.onload = function() { 

    // 500x500 픽셀 게임 제작

    game = new Phaser.Game(500, 500); 

    // 게임 상태

    game.state.add("PlayGame", playGame);

    game.state.start("PlayGame");

}

var playGame = function(game){}

playGame.prototype = {

    preload: function(){

        // 모든 콘텐츠를 표시하면서 가능한 한 가장 큰 창 영역을 게임 커버 만들기

        game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;

        game.scale.pageAlignHorizontally = true;

        game.scale.pageAlignVertically = true; 

        // 배경색 변경

        game.stage.backgroundColor = 0x448844;

        // 카드 스프라이트 시트

        game.load.spritesheet("cards", "cards.png", 167, 243);

    },

    create: function(){

        // 카드 추가

        this.card =  game.add.sprite(game.width / 2, game.height / 2, "cards", 0); 

        // 카드 앵커 포인트를 중앙에 설정

        this.card.anchor.set(0.5); 

        // 카드가 넘겨 지는지 알려주는 맞춤 속성, 지금은 아닙니다.

        this.card.isFlipping = false; 

        // 플레이어 입력 대기 중

        game.input.onDown.add(function(){

            // 카드가 뒤집히지 않으면 ...

            if(!this.card.isFlipping){ 

                // 이제 뒤집기.

                this.card.isFlipping = true; 

                // 두 개의 뒤집기 애니메이션 중 첫 번째 애니메이션 시작

                this.flipTween.start();

            }

        }, this); 

        // 첫 번째 트윈 : 카드를 올리고 뒤집습니다.

        this.flipTween = game.add.tween(this.card.scale).to({

            x: 0,

            y: gameOptions.flipZoom

        }, gameOptions.flipSpeed / 2, Phaser.Easing.Linear.None); 

        // 카드가 뒤집 히면 프레임을 변경하고 두 번째 트윈을 호출합니다.

        this.flipTween.onComplete.add(function(){

            this.card.frame = 1 - this.card.frame;

            this.backFlipTween.start();

        }, this); 

        // 두 번째 트윈 : 뒤집기를 완료하고 카드를 내립니다.

        this.backFlipTween = game.add.tween(this.card.scale).to({

            x: 1,

            y: 1

        }, gameOptions.flipSpeed / 2, Phaser.Easing.Linear.None);

 

        // 일단 카드를 테이블 위에 놓으면 다시 뒤집을 수 있습니다.

        this.backFlipTween.onComplete.add(function(){

            this.card.isFlipping = false;

        }, this);

    }

}


이제 2D 카드 게임에 사실감을 더할 수 있습니다. 다음에는 그림자와 다른 흥미로운 효과를 추가하는 방법을 보여줄 것이며 소스 코드를 다운로드 할 것입니다.



Posted by 마스터킹
|