일반적으로 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 카드 게임에 사실감을 더할 수 있습니다. 다음에는 그림자와 다른 흥미로운 효과를 추가하는 방법을 보여줄 것이며 소스 코드를 다운로드 할 것입니다.
댓글 없음:
댓글 쓰기