原生JavaScript编写canvas版的连连看游戏


Posted in Javascript onMay 29, 2016

本文实例为大家分享了JavaScript编写canvas版的连连看游戏的具体实现代码,供大家参考,具体内容如下

效果图:

原生JavaScript编写canvas版的连连看游戏

实现代码:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <style>
 #box{
 /*border: 1px solid #D1D1D1; */
 overflow: hidden; 
 position: relative;
 padding-bottom: 60px;
 }
 #bg{
 background-color: rgba(254,195,89,.2);
 }
 #mycanvas{
 position: absolute;
 top: 36px; left: 0;
 }
 #toolsbar{
 width: 100%;
 position: absolute;
 bottom: 10px;
 left: 0;
 overflow: hidden;
 }
 button{
 outline: none;
 border: none;
 width: 100px;
 height: 32px;
 background-color: #d80049;
 color: #FFFFFF;
 border-radius: 5px;
 margin-right: 10px;
 cursor: pointer;
 }
 #timeline{
 height: 26px;
 width: 568px;
 padding-bottom: 10px;
 background: url(images/time_slot-hd.png) no-repeat;
 overflow: hidden;
 }
 #timeline span{
 display: block;
 width: 100%;
 height: 100%;
 display: flex;
 overflow: hidden;
 }
 #timeline span:before,
 #timeline span:after{
 display: block;
 content: "";
 height: 26px;
 background: url(images/time_bars-hd.png) no-repeat;
 }
 #timeline span:before{
 width: 12px;
 }
 #timeline span:after{
 /*width: 100%;*/
 background-position: right top;
 -webkit-flex: 1;
 /*margin-top: -26px;*/
 }
 </style>
 </head>
 <body>
 <div id="box">
 <div id="timeline"><span></span></div>
 <div id="toolsbar">
 <button class="resort">重列(3)</button>
 <button class="tip">提示(3)</button>
 <button class="boom">炸弹(3)</button>
 <button class="parse" style=" background-color: #00AA79;">暂停</button>
 <button class="restart" style="margin-left: 50px; background-color: #00AA79;">重新开始</button>
 </div>
 <canvas id="bg" width="818" height="474px"></canvas>
 <canvas id="mycanvas" width="818" height="474px">
 
 </canvas>
 </div>
 
 </body>
</html>
<script type="text/javascript" src="../../public/js/jquery-1.11.2.min.js" ></script>
<script type="text/javascript" src="control.js" ></script>
<script type="text/javascript" src="matrix.js" ></script>
<script type="text/javascript" src="draw.js" ></script>
<script type="text/javascript" src="map.js" ></script>
<script type="text/javascript" >
$(function(){
 var matrix = MAP_ARR[parseInt(Math.random()*MAP_ARR.length)];
 window._Matrix = new Matrix(matrix,36);
 
 window.draw = new Draw({
 id : "mycanvas",
 step : 42,
 matrix : _Matrix.matrix,
 dir : "images/",
 speed : 300
 });
 var controller = new control({
 step : 42,
 col : 19,
 row : 11,
 id : "bg",
 time : 90000,
 draw : draw,
 _Matrix : _Matrix,
 times : 3
 });

 $("#mycanvas").on("click",function(e){
 var x = e.offsetX,
 y = e.offsetY;
 var _x = Math.floor((x-1)/43),
 _y = Math.floor((y-1)/43);
 controller.click(_x,_y);
 });
 $(".resort").on("click",function(){
 var count = parseInt($(this).text().match(/\d+/)[0]);
 if(count){
 count--;
 $(this).text("重列("+ count +")");
 }
 controller.resort();
 });
 var tiped = false,tips;
 $(".tip").on("click",function(){
 var count = parseInt($(this).text().match(/\d+/)[0]);
 if(count){
 count--;
 $(this).text("提示("+ count +")");
 }
 controller.gettips();
 });
 $(".boom").on("click",function(){
 var count = parseInt($(this).text().match(/\d+/)[0]);
 if(count){
 count--;
 $(this).text("炸弹("+ count +")");
 }
 controller.boom();
 });
 $(".restart").on("click",function(){
 controller.restart();
 });
 $(".parse").on("click",function(){
 var bool = $(this).text() == "暂停";
 $(this).text(bool ? "继续" : "暂停")
 controller.parse();
 });
 controller.watch(function(percent){
 $("#timeline span").width(percent+"%");
 });
});
</script>

源码下载:连连看游戏

关于JavaScript编写游戏的开发实例还有很多,具体大家可以参考专题《javascript经典小游戏汇总》进行学习,希望对大家的学习有所帮助。

Javascript 相关文章推荐
js定时器(执行一次、重复执行)
Mar 07 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
Mar 18 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
Nov 17 Javascript
详解jquery事件delegate()的使用方法
Jan 25 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
Oct 15 Javascript
学习vue.js中class与style绑定
Dec 03 Javascript
微信小程序网络请求wx.request详解及实例
May 18 Javascript
JS计算距当前时间的时间差实例
Dec 29 Javascript
vue项目关闭eslint校验
Mar 21 Javascript
jquery的 filter()方法使用教程
Mar 22 jQuery
vue项目环境变量配置的实现方法
Oct 12 Javascript
基于VUE的v-charts的曲线显示功能
Oct 01 Javascript
js省市县三级联动效果实例
Apr 15 #Javascript
js实现精确到秒的倒计时效果
May 29 #Javascript
解读Bootstrap v4 sass设计
May 29 #Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
May 29 #Javascript
深入理解js数组的sort排序
May 28 #Javascript
深入理解js函数的作用域与this指向
May 28 #Javascript
js和C# 时间日期格式转换的简单实例
May 28 #Javascript
You might like
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
Laravel 5框架学习之用户认证
2015/04/09 PHP
PHP new static 和 new self详解
2017/02/19 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
通过JS 获取Mouse Position(鼠标坐标)的代码
2009/09/21 Javascript
JavaScript写的一个自定义弹出式对话框代码
2010/01/17 Javascript
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
angularJS中router的使用指南
2015/02/09 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
2015/12/13 Javascript
jQuery基于json与cookie实现购物车的方法
2016/04/15 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
JS实现字符串转驼峰格式的方法
2016/12/16 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
jquery实现图片轮播器
2017/05/23 jQuery
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
Vue.extend 编程式插入组件的实现
2019/11/18 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
eDreams葡萄牙:全球最大的在线旅行社之一
2019/04/15 全球购物
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
4S店销售内勤岗位职责
2015/04/13 职场文书
民事申诉状范本
2015/05/20 职场文书