原生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 相关文章推荐
window.js 主要包含了页面的一些操作
Dec 23 Javascript
JS图片无缝滚动(简单利于使用)
Jun 17 Javascript
JS获取地址栏参数的小例子
Aug 23 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
Mar 11 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
Mar 07 Javascript
原生js实现回复评论功能
Jan 18 Javascript
整理关于Bootstrap表单的慕课笔记
Mar 29 Javascript
微信小程序组件之srcoll-view的详解
Oct 19 Javascript
vue select二级联动第二级默认选中第一个option值的实例
Jan 10 Javascript
使用layui 渲染table数据表格的实例代码
Aug 19 Javascript
Vue点击切换颜色的方法
Sep 13 Javascript
详解Vue调用手机相机和相册以及上传
May 05 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
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
2013/06/17 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
2015/04/14 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
跟我学习javascript的严格模式
2015/11/16 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
jQuery实现iframe父窗体和子窗体的相互调用
2016/06/17 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
微信小程序实现天气预报功能
2018/07/18 Javascript
微信小程序版本自动更新的方法
2019/06/14 Javascript
JavaScript实现拖拽功能
2020/02/11 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
详解微信小程序动画Animation执行过程
2020/09/23 Javascript
Python下Fabric的简单部署方法
2015/07/14 Python
python基础知识小结之集合
2015/11/25 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
如何使用Python脚本实现文件拷贝
2019/11/20 Python
python使用配置文件过程详解
2019/12/28 Python
Numpy一维线性插值函数的用法
2020/04/22 Python
python爬取招聘要求等信息实例
2020/11/20 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
浅谈html5之sse服务器发送事件EventSource介绍
2017/08/28 HTML / CSS
世界上最大的在线旅行社新加坡网站:Expedia新加坡
2016/08/25 全球购物
中国最大的团购网站:聚划算
2016/09/21 全球购物
Styleonme中文网:韩国高档人气品牌
2017/06/21 全球购物
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
廉价连衣裙和婚纱礼服在线销售:Tbdress
2019/02/28 全球购物
SQL语言面试题
2013/08/27 面试题
详细的大学生创业计划书模板
2014/01/27 职场文书
优秀团员个人事迹材料
2014/01/29 职场文书
党章党规党纪学习心得体会
2016/01/14 职场文书
Html5调用企业微信的实现
2021/04/16 HTML / CSS
MySQL分区路径子分区再分区
2022/04/13 MySQL
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript