原生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 相关文章推荐
给Javascript数组插入一条记录的代码
Aug 30 Javascript
jQuery 定时局部刷新(setInterval)
Nov 19 Javascript
使用jQuery.wechat构建微信WEB应用
Oct 09 Javascript
jQuery实现html元素拖拽
Jul 21 Javascript
jQuery实现图片预加载效果
Nov 27 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
Jun 03 Javascript
JavaScript实现图片拖曳效果
Sep 08 Javascript
JavaScript自执行函数和jQuery扩展方法详解
Oct 27 jQuery
在微信小程序中保存网络图片
Feb 12 Javascript
手把手教你 CKEDITOR 4 实现Dialog 内嵌 IFrame操作详解
Jun 18 Javascript
使用 Element UI Table 的 slot-scope方法
Oct 10 Javascript
JS+CSS实现过渡特效
Jan 02 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购物车实现代码
2011/10/10 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
jquery offset函数应用实例
2012/11/14 Javascript
侧栏跟随滚动的简单实现代码
2013/03/18 Javascript
JS操作iframe里的dom(实例讲解)
2014/01/29 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
使用jquery操作session方法分享
2015/01/22 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
JavaScript实现模仿桌面窗口的方法
2015/07/18 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
vue+element实现表单校验功能
2019/05/20 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
微信小游戏中three.js离屏画布的示例代码
2020/10/12 Javascript
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
pytyon 带有重复的全排列
2013/08/13 Python
java直接调用python脚本的例子
2014/02/16 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
django 中QuerySet特性功能详解
2019/07/25 Python
基于python实现删除指定文件类型
2020/07/21 Python
python 实现简易的记事本
2020/11/30 Python
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
材料化学应届生求职信
2013/10/09 职场文书
高一生物教学反思
2014/01/17 职场文书
小加工厂管理制度
2014/01/21 职场文书
责任胜于能力演讲稿
2014/05/20 职场文书
开天辟地观后感
2015/06/09 职场文书
读完《骆驼祥子》的观后感!
2019/07/05 职场文书
MySQL 数据丢失排查案例
2021/05/08 MySQL
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技