运行界面截图
部分代码截图
var Audio = {
BA: gm("#Background-AudioPlayer")[0],
SA: gm("#Score-AudioPlayer")[0],
GA: gm("#GameOver-AudioPlayer")[0]
};
function Game() {
this.scoreEle = gm("#scores");
this.timer = null;
this.map = null;
this.block = null;
var that = this;
this.init = function () {
var content = "Welcome to tetris!";
gm("#greeting").html(content);
};
this.start = function () {
gm("#info").hide();
that.scoreEle.val(0);
that.map = new Map(12, 15);
that.map.init();
that.block = new Block(that.map.cols, that.map.rows, that.map.blockArray);
that.block.newBlock();
that.timer = window.setInterval(that.block.GoDown, 1000);
};
this.pause = function () {
window.clearInterval(that.timer);
that.timer = null;
Audio.BA.pause();
gm("document").keydown = null;
var content = "<h2 style='margin:100px auto'>Game pause!</h2>";
gm("#info").html(content).show();
};
this.resume = function () {
gm("#info").hide();
that.timer = window.setInterval(that.block.GoDown, 1000);
Audio.BA.play();
};
this.addScore = function (value) {
that.scoreEle.val(parseInt(that.scoreEle.val()) + value);
};
this.finish = function finish() {
window.clearInterval(that.timer);
gm("document").keydown = null;
that.scoreEle.val(0);
Audio.BA.pause();
Audio.GA.play();
window.alert("Game over!");
window.location.reload();
return;
};
}
内嵌自制Jquery
this.gm = function (selector) {
if (window == this) return new gm(selector);
var doms, domWrapper = [];
if (tagReg.test(selector)) {
doms = document.createElement(selector.match(tagReg)[1]);
domWrapper.push(doms);
} else{
doms = document.querySelectorAll(selector);
for (var i = 0; i < doms.length; i++) {
domWrapper.push(doms.item(i));
}
}
return this.setArray(domWrapper);
}
H5版直达:
http://yangjiegang.gitee.io/tetris
Android版下载:
https://download.csdn.net/download/yangjiegang8/12250658
参考
忘记源头在哪里了...有空找找看