原生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 相关文章推荐
IE8下jQuery改变png图片透明度时出现的黑边
Aug 30 Javascript
深入理解Javascript中的自执行匿名函数
Jun 03 Javascript
深入浅析JavaScript函数前面的加号和叹号
Jul 09 Javascript
AngularJs 指令详解及示例代码
Sep 01 Javascript
easyui combobox开启搜索自动完成功能的实例代码
Nov 08 Javascript
js封装成插件_Canvas统计图插件编写实例
Sep 12 Javascript
JavaScript requestAnimationFrame动画详解
Sep 14 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
Nov 22 Javascript
mpvue性能优化实战技巧(小结)
Apr 17 Javascript
微信小程序修改checkbox的样式代码实例
Jan 21 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
May 28 Javascript
js编写简易的计算器
Jul 29 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中new static()与new self()的区别异同分析
2014/08/22 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
Yii 2.0中场景的使用教程
2017/06/02 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
javascript options属性集合操作代码
2009/12/28 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
2011/09/05 Javascript
setTimeout的延时为0时多个浏览器的区别
2012/05/23 Javascript
Extjs4 类的定义和扩展实例
2013/06/28 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
javascript原型链继承用法实例分析
2015/01/28 Javascript
jQuery代码性能优化的10种方法
2016/06/21 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
2017/01/25 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
Django框架视图介绍与使用详解
2019/07/18 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
django echarts饼图数据动态加载的实例
2019/08/12 Python
Tensorflow 多线程与多进程数据加载实例
2020/02/05 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
六道php面试题附答案
2014/06/05 面试题
学院领导推荐信
2013/10/30 职场文书
秋天的怀念教学反思
2014/04/28 职场文书
服务承诺口号
2014/05/22 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
申请吧主发表的感言
2015/08/03 职场文书
Python WSGI 规范简介
2021/04/11 Python
python实现简易名片管理系统
2021/04/11 Python
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android