原生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 相关文章推荐
Gird组件 Part-3:范例RSSFeed Viewer
Mar 10 Javascript
window.onload 加载完毕的问题及解决方案(下)
Jul 09 Javascript
COM中获取JavaScript数组大小的代码
Nov 22 Javascript
js 设置选中行的样式的实现代码
May 24 Javascript
DLL+ ActiveX控件+WEB页面调用例子
Aug 07 Javascript
JS数组的常见用法实例
Feb 10 Javascript
ES6记录异步函数的执行时间详解
Aug 31 Javascript
微信小程序 实现拖拽事件监听实例详解
Nov 16 Javascript
vue实现全选和反选功能
Aug 31 Javascript
parabola.js抛物线与加入购物车效果的示例代码
Oct 25 Javascript
vue3中的组件间通信
Mar 31 Vue.js
Vue+TypeScript中处理computed方式
Apr 02 Vue.js
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
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
prototype 1.5 &amp; scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
window.open()弹出居中的窗口
2007/02/01 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
使用npm发布Node.JS程序包教程
2015/03/02 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
新手vue构建单页面应用实例代码
2017/09/18 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
详解如何使用webpack打包多页jquery项目
2019/02/01 jQuery
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
npm全局环境变量配置详解
2020/12/15 Javascript
[45:50]完美世界DOTA2联赛PWL S3 CPG vs Forest 第二场 12.16
2020/12/17 DOTA
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
Python读写文件方法总结
2015/06/09 Python
python之django母板页面的使用
2018/07/03 Python
浅析python的优势和不足之处
2018/11/20 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
pyQt5实时刷新界面的示例
2019/06/25 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
浅谈Django前端后端值传递问题
2020/07/15 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
python 如何使用find和find_all爬虫、找文本的实现
2020/10/16 Python
数据库连接池的工作原理
2012/09/26 面试题
Weblogic的布署方式
2013/08/23 面试题
节能减排倡议书
2014/04/15 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
生活小常识广播稿
2015/08/19 职场文书
2016年乡镇七一建党节活动总结
2016/04/05 职场文书
深入理解java.lang.String类的不可变性
2021/06/27 Java/Android
TV动画《间谍过家家》公开PV
2022/03/20 日漫