欢迎来到程序小院
玩法:控制小猪点击屏幕左右砍树,不能碰到树枝,考验手速与眼力,记录分数,快去挑战伐木吧^^。
开始游戏https://www.ormcc.com/play/gameStart/199
*{
padding: 0;
margin: 0;
border: none;
user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select:
none;
box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box;
-ms-box-sizing: border-box;
}
canvas{
margin: 0 auto;
}
var isStart = 0;
window.Timberpig.state.demo = {
create: function(){
var game = this;
var j = 0; //当第一次按下 不执行
var tweenA,tweenB;
this.background = mt.create("background"); //创建背景
this.ground = mt.create("ground"); //创建地面
this.cloud = mt.create("cloud"); //创建云层
this.cloud.update = function(){ //云层动画
for(var i = 0; i < this.length; i++){
if(this.getChildAt(i).x + this.getChildAt(i).width < 0){
this.getChildAt(i).x = game.world.width;
this.getChildAt(i).y = game.rnd.between(game.world.centerY / 2,game.world.centerY / 1.5);
}
this.getChildAt(i).x--;
}
};
this.tree = mt.create("tree"); //创建树木
this.title = mt.create("title"); //创建标题
tweenA = game.add.tween(this.title).to( { y: this.title.y + 100 }, 2000, "Linear");
tweenB = game.add.tween(this.title).to( { y: this.title.y }, 2000, "Linear");
tweenA.chain(tweenB); //缓动动画
tweenB.chain(tweenA); //动画链接
tweenA.start(); //播放动画
this.title.update = function(){
if(isStart == 1){this.destroy();}
};
this.Score = mt.create("Score");
this.Score.alpha = 0;
var Score = this.Score;
this.btnPlay = mt.create("btnPlay"); //开始按钮
this.btnPlay.inputEnabled = true; //接收事件
this.btnPlay.events.onInputDown.addOnce(function(){ //鼠标点击事件
j = 2;
isStart = 1;
Score.alpha = 1;
});
this.btnPlay.update = function(){
if(isStart == 1){this.destroy();}
};
this.player = mt.create("player");
var player = this.player;
this.player.dt = 0;
this.player.frameIndex = this.player.frame;
var cutA = this.player.animations.add('cut', [0, 1, 2]);
this.player.animations.add('gif', [0, 7]);
this.player.animations.add('die',[12,11,10,4,3,8,9,6,5],10,false);
cutA.onComplete.add(function(){
player.animations.play('gif',5,true);
}, this);
this.player.anchor.set(0.5,0);
this.player.leftX = 184;
this.player.rightX = 354;
this.player.x = this.player.leftX;
this.player.update = function(){
// this.dt++;
// if(this.dt % 10 === 0){
// if(this.frameIndex === 0){
// //console.log("a");
// this.frameIndex = 7;
// } else {
// //console.log("b");
// this.frameIndex = 0;
// }
// }
// this.frame = this.frameIndex;//播放人物常态动画
if(isStart == 1){
if (j <= 1) return false;
if (game.input.activePointer.isDown){//游戏内鼠标点击
if(game.input.activePointer.x < game.world.centerX){
this.x = this.leftX;
this.scaleX = 1;
} else {
this.x = this.rightX;
this.scaleX = -1;
}
//this.animations.play('cut');
cutA.play(10,false);
}
}
};
this.gameOver = mt.create("gameOver");
this.gameOver.alpha = 0;
this.gameOver.getData().userData.score = 0;
this.gameOver.update = function(){
if(isStart !== 2) {return false}
if(isStart == 2){
Score.destroy();
this.mt.children.gameCase.setText(this.getData().userData.case);
this.mt.children.gameScore.setText(this.getData().userData.score);
this.mt.children.gameCase.x = game.world.centerX;
this.mt.children.gameScore.x = game.world.centerX;
this.alpha = 0.9;
if(this.getData().userData.case == "Lost"){
//死亡动画
player.scaleY = 1;
//player.frame = 5;
player.animations.play('die');
}
isStart = 3;
}
};
this.gameOver.mt.children.btnRetry.inputEnabled = true;
this.gameOver.mt.children.btnRetry.events.onInputDown.addOnce(function(){
game.state.start("demo");
},this);
var gameOver = this.gameOver;
this.time = mt.create("time");
this.time.alpha = 0;
this.time.update = function(){
if(isStart == 1){
this.alpha = 1;
this.mt.children.top.width--;
if(this.mt.children.top.width <= 0){
this.alpha = 0;
gameOver.getData().userData.case = "Lost";
isStart = 2;
}
}
if(isStart == 2){
this.alpha = 0;
}
};
var dx1 = 0,dx2 = 0;
game.input.onDown.add(function(){
if(isStart == 1){//游戏内鼠标点击
if(game.input.activePointer.x < game.world.centerX){
//left
dx1 = 50;
dx2 = 100;
} else {
//right
dx1 = -50;
dx2 = -100;
}
for(var i = 1;i < this.tree.length;i++){
if(this.tree.getChildAt(i).y + this.tree.getChildAt(i).height >=
this.tree.getChildAt(0).y){
//创建动画
var animation = game.add.image(this.tree.getChildAt(i).x,
this.tree.getChildAt(i).y,"");
animation.texture = this.tree.getChildAt(i).texture;
tweenA = game.add.tween(animation).to( { x: animation.x +
dx1,y: animation.y - 50 }, 300, "Linear");
tweenB = game.add.tween(animation).to( { x: animation.x +
dx2,y: animation.y + 50 }, 300, "Linear");
//缓动动画
tweenB.onComplete.add(function(){
animation.destroy();
},this);
tweenA.chain(tweenB);
tweenA.start(); /播放动画
//销毁树桩上的一段木头
this.tree.getChildAt(i).destroy();
//游戏得分递增
this.gameOver.getData().userData.score++;
this.time.mt.children.top.width += 5;
if(this.gameOver.getData().userData.score == 49){
this.gameOver.getData().userData.case = "Win";
isStart = 2;
}
}
}
for(var i = 1;i < this.tree.length;i++){//被砍往下掉
this.tree.getChildAt(i).y += 57;
if(this.tree.getChildAt(i).y + this.tree.getChildAt(i).height >=
this.tree.getChildAt(0).y){//防止越界
this.tree.getChildAt(i).y = this.tree.getChildAt(0).y -
this.tree.getChildAt(i).height;
}
}
}
},this);
},
update:function(){
if(isStart !== 1) return false;
this.Score.text = this.gameOver.getData().userData.score;
var gameOver = this.gameOver;
this.game.physics.arcade.overlap(this.player,this.tree,function(){
//console.log("游戏结束");
gameOver.getData().userData.case = "Lost";
isStart = 2;
});
}
};
源码https://www.ormcc.com/
需要源码请关注添加好友哦^ ^
转载:欢迎来到本站,转载请注明文章出处
https://ormcc.com/