HTML打地鼠小游戏代码

超简单实用的打地鼠代码,话不多说,直接看代码。

var win = this.getWindow();
var me = this;
win.resetGame();
//变量初始化
win.gameOver = initData;
win.initVar = function(){
win.score = 0;
win.countDown = 30;
win.arrayGopher = Array();//地鼠
win.find(“云/计分板/倒计时”).setValue(“00:” + win.countDown);
win.hammer = win.find(“锤子”);
win.hammer.setPivot(1,0.5);
var ground = win.find(“底”);
var fences = win.find(“栅栏”);
fences.setPosition(fences.x,ground.y - fences.h);
};
//所有的地鼠初始化
win.gopherInit = function(number){
if(number <= 0){
return;
}
for(var i = 0; i < number; i++){//
win.arrayGopher[i] = win.find(“切图-”+i);
win.arrayGopher[i].randomFlag = false;//出洞标志
win.arrayGopher[i].hitFlag = false;//击中标志
var element = win.arrayGopher[i].children[0];
element.setPosition(element.x,element.y+element.h + 50);
}
};
//随机地鼠出洞
var resetState = function(){
if(win.gameOver || !this.children) {
return;
}
var self = this;
var element = self.children[0];
//播出洞动画
self.hitFlag = false;//清击中标志
element.play( “chu”, 1, function(){
var animateOut = {duration:250,yEnd:element.y-element.h - 50};
element.animate(animateOut,function(){//出洞
me.playSoundEffect(“sound 63.wav”, function onDone() {console.log(“play finished”);});
setTimeout(function() {
//判断是否被击中
if(self.hitFlag === false) {
self.hitFlag = true;//进洞禁止击打
//播进洞动画
var animateEnter = {duration:150,yEnd:element.y+element.h + 50};
element.animate(animateEnter);//进洞
}
setTimeout(function() {
if(self){
//出多少地鼠可以在这里做修改
/* //出一只老鼠
index = Math.floor(Math.random()win.arrayGopher.length);
win.arrayGopher[index].resetState();
/
/
出多只地鼠
/
self.resetState();
}
}, 1600+Math.random()*1200);
}, 1500);
});
});
};
//击打地鼠
var handleClick = function(point){

var element = this.children[0];

win.hammer.setPosition(this.x,this.y);

var hammerAnimateHit = { duration:80, rotationStart: 45 / 180 * Math.PI, rotationEnd:2 / 180 * Math.PI};
var hammerAnimate = { duration:80, rotationStart: 2 / 180 * Math.PI, rotationEnd:45 / 180 * Math.PI};
win.hammer.animate(hammerAnimateHit,function(){ win.hammer.animate(hammerAnimate) });
me.playSoundEffect("HitVoles.mp3", function onDone() {console.log("play finished");});
if(element.animating || win.gameOver) {
    return;
}
     
if(this.hitFlag === false){

    this.hitFlag  = true;//击中禁止在击打标志
    win.score++;
    win.find("云/计分板/得分").setValue(win.score);
    //先播击中动画,在播进洞动画
    element.play("hit", 1,function(){
        var animateEnter = { duration:250, yEnd:element.y+element.h + 50};
        element.animate(animateEnter);
    });
}

};
win.initVar();
win.gopherInit(16);

for(var i = 0; i < win.arrayGopher.length; i++){
win.arrayGopher[i].handleClick = handleClick;
win.arrayGopher[i].resetState = resetState;
}
var number = 0;
win.gopherStart = function(){
if(win.gameOver){
return;
}
if(number < win.arrayGopher.length){
var index = 0;
do{
index = Math.floor(Math.random()*win.arrayGopher.length);
}while(win.arrayGopher[index].randomFlag);
win.arrayGopher[index].randomFlag = true;
win.arrayGopher[index].resetState();
setTimeout(function(){
win.gopherStart();
}, 1200+Math.random()*1000);
number++;
}
};
win.gopherStart();

作者:逆天之路
来源:CSDN
原文:https://mp.csdn.net/mdeditor/95075193
版权声明:本文为博主原创文章,载请附上博文链接!

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值