Phaser는 tweens와 파티클 덕택에 타이틀 스크린에 생명을 불어 넣을 수있게 해줍니다. 그리고 몇 줄의 코드로 우리는 약 1 분 안에 간단하고 심플한 타이틀 화면을 다이나믹한 화면으로 만들수 있습니다.
왼쪽에는 정적인 타이틀 화면이며, 오른쪽은 트윈과 파티클을 이용한 다이나믹한 화면입니다.
어느 것이 더 전문적인 것 같습니까? 게임 타이틀을 왼쪽에서 오른쪽으로 바꾸는데 걸리는 시간은 오래 걸리지 않습니다.
다음 코드는 왼쪽 화면을 생성하는 코드 입니다.
var GlobezGame = GlobezGame || {};
GlobezGame.GameTitle = function(){
startGame = false;
};
GlobezGame.GameTitle.prototype = {
create: function(){
console.log("%cStarting game title", "color:white; background:red");
this.add.image(0,0,"background");
//
var gameTitleSeaLife = this.add.image(160,70,"gametitle_sealife");
gameTitleSeaLife.anchor.setTo(0.5,0.5);
//
var gameTitleVs = this.add.image(190,120,"gametitle_vs");
gameTitleVs.anchor.setTo(0.5,0.5);
//
var gameTitleMines = this.add.image(160,160,"gametitle_mines");
gameTitleMines.anchor.setTo(0.5,0.5);
//
var playButton = this.add.button(160,320,"playbutton",this.playTheGame,this)
playButton.anchor.setTo(0.5,0.5);
},
playTheGame: function(){
if(!startGame){
startGame = true
alert("Start the game!!");
}
}
}
다음 코드는 오른쪽 화면을 생성하는 코드 입니다.
var GlobezGame = GlobezGame || {};
GlobezGame.GameTitle = function(){
startGame = false;
};
GlobezGame.GameTitle.prototype = {
create: function(){
console.log("%cStarting game title", "color:white; background:red");
this.add.image(0,0,"background");
//
var bubblesEmitter = this.add.emitter(160, 500, 50);
bubblesEmitter.makeParticles("bubble");
bubblesEmitter.maxParticleScale = 0.6;
bubblesEmitter.minParticleScale = 0.2;
bubblesEmitter.setYSpeed(-30, -40);
bubblesEmitter.setXSpeed(-3, 3);
bubblesEmitter.gravity = 0;
bubblesEmitter.width = 320;
bubblesEmitter.minRotation = 0;
bubblesEmitter.maxRotation = 40;
bubblesEmitter.flow(15000, 2000)
//
var gameTitleSeaLife = this.add.image(160,70,"gametitle_sealife");
gameTitleSeaLife.anchor.setTo(0.5,0.5);
gameTitleSeaLife.angle = (2+Math.random()*5)*(Math.random()>0.5?1:-1);
var seaLifeTween = this.add.tween(gameTitleSeaLife);
seaLifeTween.to({
angle: -gameTitleSeaLife.angle
},5000+Math.random()*5000,Phaser.Easing.Linear.None,true,0,1000,true);
//
var gameTitleVs = this.add.image(190,120,"gametitle_vs");
gameTitleVs.anchor.setTo(0.5,0.5);
gameTitleVs.angle = (2+Math.random()*5)*(Math.random()>0.5?1:-1);
var vsTween = this.add.tween(gameTitleVs);
vsTween.to({
angle: -gameTitleVs.angle
},5000+Math.random()*5000,Phaser.Easing.Linear.None,true,0,1000,true);
//
var gameTitleMines = this.add.image(160,160,"gametitle_mines");
gameTitleMines.anchor.setTo(0.5,0.5);
gameTitleMines.angle = (2+Math.random()*5)*(Math.random()>0.5?1:-1);
var minesTween = this.add.tween(gameTitleMines);
minesTween.to({
angle: -gameTitleMines.angle
},5000+Math.random()*5000,Phaser.Easing.Linear.None,true,0,1000,true);
//
var playButton = this.add.button(160,320,"playbutton",this.playTheGame,this)
playButton.anchor.setTo(0.5,0.5);
playButton.angle = (2+Math.random()*5)*(Math.random()>0.5?1:-1);
var playTween = this.add.tween(playButton);
playTween.to({
angle: -playButton.angle
},5000+Math.random()*5000,Phaser.Easing.Linear.None,true,0,1000,true);
//
var blackFade = this.add.sprite(0,0,"blackfade");
var fadeTween = this.add.tween(blackFade);
fadeTween.to({
alpha:0
},2000,Phaser.Easing.Cubic.Out,true);
},
playTheGame: function(){
if(!startGame){
startGame = true
alert("Start the game!!");
}
}
}
오른쪽 화면 생성 코드에서 볼 수 있듯이 입자 방아쇠와 일부 컷 / 과거 트윈을 추가 했으므로 코드를 원하는대로 변경할 수 있습니다. 일부 좌표 만 변경하면됩니다.
그 결과가 더 좋고, 노력이 최소한이며, 정적 타이틀 화면이 더 이상 보이지 않기를 바랍니다. 두 프로젝트의 소스 코드를 다운로드 할 수 있습니다.
댓글 없음:
댓글 쓰기