原生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 相关文章推荐
FireFox JavaScript全局Event对象
Jun 14 Javascript
基于JQuery的模拟苹果桌面Dock效果(稳定版)
Oct 15 Javascript
单击复制文字兼容各浏览器的完美解决方案
Jul 04 Javascript
js实现精确到秒的日期选择器完整实例
Apr 30 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
May 10 Javascript
8 行 Node.js 代码实现代理服务器
Dec 05 Javascript
Bootstrap table 定制提示语的加载过程
Feb 20 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
Mar 14 Javascript
knockoutjs模板实现树形结构列表
Jul 31 Javascript
JS轮播图实现简单代码
Feb 19 Javascript
JS数组去重常用方法实例小结【4种方法】
May 28 Javascript
html5 录制mp3音频支持采样率和比特率设置
Jul 15 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
支持oicq头像的留言簿(一)
2006/10/09 PHP
PHP调用JAVA的WebService简单实例
2014/03/11 PHP
自己写了一个php检测文件编码的函数
2014/04/21 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
PHP使用pear自带的mail类库发邮件的方法
2015/07/08 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
IE和Firefox下event事件杂谈
2009/12/18 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
仿iframe效果Aajx文件上传实例
2016/11/18 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
微信小程序如何使用globalData的方法
2019/06/06 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
[02:16]完美世界DOTA2联赛PWL S3 集锦第三期
2020/12/21 DOTA
[01:01:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第一场 3月4日
2021/03/11 DOTA
Python 调用VC++的动态链接库(DLL)
2008/09/06 Python
Python中AND、OR的一个使用小技巧
2015/02/18 Python
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
Python基于SMTP协议实现发送邮件功能详解
2018/08/14 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
工商企业管理实习自我鉴定
2013/12/04 职场文书
计算机操作自荐信
2013/12/07 职场文书
销售心得体会
2014/01/02 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
导游词之包公祠
2019/11/25 职场文书
关于python类SortedList详解
2021/09/04 Python