找茬游戏html5源码,大家来找茬游戏以JS实现
【实例简介】
运用js语言来实现大家来找茬小游戏
【实例截图】
【核心代码】
;~function(){
var d = document,
scene = d.getElementById("scene"),
startBtn = d.getElementById("start-btn"),
timeBox = d.getElementById("time-box"),
timeBar = d.getElementById("time-bar"),
diffFindNum = d.getElementById("diff-find-num"),
topPic = d.getElementById("top-pic"),
bottomPic = d.getElementById("bottom-pic"),
layer = d.getElementById("layer"),
mask = d.getElementById("mask"),
tipsWordArr = ["开始游戏吧!" , "玩累了,休息下吧!" , "时间到,游戏结束!每点错一次扣10s,你的得分是" , "恭喜全部通关!你的得分是" , "开始游戏" , "暂停游戏"],
imgNumArr = [],
imgDiffNum = 0,
imgFindNum = 0,
sceneSwitchTimer = null ,
isPlayAgain = false,
isFirstPlay = true;
startBtn.onclick = function(){
if(isPlayAgain){
game.init();
counter.start(timeBar , true , game.over);
sceneMask.hide();
}
if(this.innerHTML == tipsWordArr[4]){
this.innerHTML = tipsWordArr[5];
if(isPlayAgain){
counter.start(timeBar , true , game.over);
}
else{
counter.start(timeBar , false , game.over);
}
sceneMask.hide();
}
else{
this.innerHTML = tipsWordArr[4];
counter.stop();
sceneMask.show(tipsWordArr[1]);
}
isFirstPlay = false;
}
var game = {
imgRender : function(){
var self = this,
randomNum = 0,
imgNowNum = 0;
imgDiffNum = diffFindNum.innerHTML = 0; // reset number of matching
topPic.innerHTML = bottomPic.innerHTML = ""; // clear scene content when start game or finished a scene
if(imgNumArr.length){
randomNum = Math.floor(Math.random()*imgNumArr.length); // get the random number of pic
imgNowNum = imgNumArr[randomNum];
imgNumArr.splice(randomNum,1);
}
topPic.innerHTML = "";
bottomPic.innerHTML = "";
var topPicLayer = document.getElementById("top-pic-layer"),
bottomPicLayer = document.getElementById("bottom-pic-layer");
topPicLayer.onclick = bottomPicLayer.onclick = function(){
counter.num -= 10;
}
for(var i = 0 ; i<4 ; i ){
var diff = d.createElement("div"),
diffClone = null;
diff.className = "diff";
diff.setAttribute("index",i);
diff.style["left"] = imgData.imgInfo[imgNowNum].pos[i].x "px";
diff.style["top"] = imgData.imgInfo[imgNowNum].pos[i].y "px";
diff.style["width"] = imgData.imgInfo[imgNowNum].pos[i].w "px";
diff.style["height"] = imgData.imgInfo[imgNowNum].pos[i].h "px";
diffClone = diff.cloneNode("deep");
topPic.appendChild(diff);
bottomPic.appendChild(diffClone);
diffClone.onclick = diff.onclick = function(e){
var diffEle = scene.getElementsByTagName("div"),
thisIndex = this.getAttribute("index"),
e = e || event ;
for(var i = 0 ; i < diffEle.length ; i ){
if(diffEle[i].getAttribute("index") === thisIndex){
if(diffEle[i].className !== "diff selected"){
imgDiffNum ;
diffFindNum.innerHTML = imgDiffNum/2;
diffEle[i].className = " selected"
}
}
}
if(imgDiffNum == 8){
if(imgNumArr.length === 0){ // game pass
setTimeout(function(){
self.over(imgFindNum);
} , 800);
}
else{ // next pic
sceneSwitchTimer = setTimeout(function(){
self.imgRender();
counter.start(timeBar , true , self.over);
},800);
imgFindNum ;
}
}
e.cancelBubble = true;
}
}
},
over : function(imgFindCount){
if(imgFindCount === imgData.count - 1){ // you win
sceneMask.show(tipsWordArr[3] " " (imgFindNum 1));
}
else{ // time is over
sceneMask.show(tipsWordArr[2] " " imgFindNum);
}
counter.stop();
isPlayAgain = true;
startBtn.innerHTML = tipsWordArr[4];
},
init : function(){
isFirstPlay && sceneMask.show(tipsWordArr[0]);
imgNumArr = [];
for(var n = 0 ; n < imgData.count ; n ){
imgNumArr.push(n);
}
imgFindNum = 0;
isPlayAgain = false;
game.imgRender();
}
}
var counter = {
num : 60,
maxW : timeBox.offsetWidth,
timer : null,
start : function(obj , isPlayAgain , callback){
var self = this;
// reset timebar para when game init
if(isPlayAgain){
self.num = 60;
obj.style["width"] = self.maxW "px";
}
clearInterval(self.timer);
self.timer = setInterval(function(){
self.num--;
if(self.num <= -1){
self.num = 0;
clearInterval(self.timer);
callback && callback();
}
obj.style["width"] = (self.num/60) * self.maxW "px";
},1000);
},
stop : function(){
clearInterval(this.timer);
}
}
var sceneMask = {
show : function(tipsWord){
mask.innerHTML = "
" tipsWord "
";
mask.style["background"] = "rgba(0,0,0,0.8)";
mask.style["display"] = "block";
},
hide : function(){
mask.style["display"] = "none";
}
}
function loadingFn(callback){
var loadingBox = d.getElementById("loading-box"),
loadingBar = d.getElementById("loading-bar"),
progressBar = d.getElementById("progress-bar"),
loadW = loadingBox.offsetWidth,
imgArr = [],
iNow = 0;
for(var i = 0 ; i < imgData.count ; i ){
imgArr.push("images/" (imgData.imgInfo[i].src) "_a.jpg");
imgArr.push("images/" (imgData.imgInfo[i].src) "_b.jpg");
}
function loadImage() {
var showImg = new Image();
showImg.onload = function(){
iNow ;
if(iNow < imgArr.length){
loadingBar.style["width"] = parseInt(iNow/(imgArr.length-1)*loadW) "px";
progressBar.innerHTML = parseInt(iNow/(imgArr.length-1)*100) "%";
loadImage();
}
else{
gameShowTimer = setTimeout(function(){
layer.style["display"] = "none";
callback && callback();
},600);
}
}
showImg.src = imgArr[iNow];
}
loadImage();
}
loadingFn(game.init);
}()
找茬游戏html5源码,大家来找茬游戏以JS实现相关推荐
- 在线MG小游戏html5源码
介绍: 源码很小,要求主机配置并不高,普通主机就可以搭建 内置 眼力测试,优雅跳一跳,像素小鸟,纸飞机,见缝插针,塔块游戏,都不能死,压扁小鸟,疯狂手指,无聊投篮,夹娃娃源码 拥有十多种种在线小游戏, ...
- 找不同颜色小游戏html源码,Javascript实现找不同色块的游戏
游戏规则:在变化数量的颜色块里找出一个不同颜色的块点击 这里使用了JS中的构造函数来创建元素 找不同色块的游戏(构造函数) *{ margin: 0; padding: 0; } #box{ widt ...
- 头脑王者对战游戏html5源码,头脑王者分析笔记及微信小程序解包源码
最近感觉微信小程序比较火,周围很多人在玩"跳一跳"和"头脑王者"之类的小游戏. 对于小程序我也产生了浓厚的兴趣. 一开始看到官方的小程序的介绍,也看了小程序的部 ...
- html实现扫雷小游戏(附源码)
文章目录 实现功能 1.扫雷设计 1.1 主界面 1.2 扫雷难度 1.3 附带功能 2.效果和源码 2.1 动态效果 2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blo ...
- Android3D抽方块源码,block puzzle jewel 方块拼图消除游戏安卓源码
[实例简介] block puzzle jewel 方块拼图消除游戏安卓源码,俄罗斯方块变种小游戏,拉拽方块放入,一行或一列消除 [实例截图] [核心代码] f4c3b198-e210-420c-af ...
- flash高科技php网站源码下载,Flash小游戏PHP源码
项目包里有两种版本, 第一种是:UTF-8 PHP版本 第二种是:UTF-8 伪静态版本(如果空间支持,强烈建议使用此版本,对搜索引擎友好) 开源项目:flash游戏源码,小游戏PHP源码,休闲fla ...
- 找茬小程序源码、看图找不同小程序,前端+后端+教程,微信小程序游戏一起来找茬,全网首发一款可以完美运营的找茬小程序源码
演示小程序搜[最强脑洞I全民烧脑] 一共有2510关, 达到高级后会随机出现关卡: 一共7个能量, 每闯关一次扣除一个能量值, 看激励视频可以获得一个能量值: 金币获取: 段位升级 或者 观看激励视频 ...
- 我的CSDN笔记总索引(阅读量降序,代码自动遍历生成HTML5源码)
Python代码用"命令容器"方法os.system(),调用Linux命令行工具crul获取CSDN博文页面源码,Python内置re正则解析出博文笔记信息,按阅读量降序模块输出 ...
- H5幸运盒子幸运砸金蛋微信盲盒游戏网站源码
H5幸运盒子幸运砸金蛋微信盲盒游戏网站源码(经检查代码不加密,开源),幸运盒子幸运砸金蛋微信盲盒游戏源码下载 礼物盲盒砸金蛋/红包雨/全修复版本/自带积分商城支付及登陆均已对接 最近很多人在找的虎年砸 ...
- lua文件服务器,lua游戏服务器源码
lua游戏服务器源码 内容精选 换一换 简要介绍Lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能.语言:C一 ...
最新文章
- RESTful之过滤Filtering
- MATLAB和Python读取wave文件的波形对比
- vc6.0上安装qt插件
- Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test)
- 多网卡无法上外网的解决
- Android之Fragment 真正的完全解析(上)
- mysql shell可视化_shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中...
- 随想录(协议栈的基本技术)
- bzoj 1237: [SCOI2008]配对(DP)
- 界面排版-TableLayout的stretchColumns方法
- 澳门人均GDP比香港高,但为什么很多人感觉澳门没有香港富有?
- VS Code 运行时会弹出Unins000.Exe目标目录创建文件错误
- php关闭notice_php怎么关闭notice警告
- nice计算机英语,不错的英文,nice的三种意思?
- 费曼:任何伟大的科学成就,都源于思想自由
- Android App集成支付宝
- GB2312字符集对应16进制ANSI、UNICODE、UTF-8编码 (5)
- vue项目引入vue-i18n,实现中英文切换
- 秋天是掉头发的季节,怎么做才少掉些?!
- Windows10关闭系统更新(通过本地组策略)