原生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核心支持代码分享
May 23 Javascript
js函数setTimeout延迟执行的简单介绍
Jul 17 Javascript
JS冒泡事件的快速解决方法
Dec 16 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
May 30 Javascript
基于Vuejs实现购物车功能
Aug 02 Javascript
如何利用JSHint减少JavaScript的错误
Aug 23 Javascript
Angular动态添加、删除输入框并计算值实例代码
Mar 29 Javascript
浅谈webpack下的AOP式无侵入注入
Nov 12 Javascript
Vue中render方法的使用详解
Jan 26 Javascript
详解vue中移动端自适应方案
May 05 Javascript
vue弹出框组件封装实例代码
Oct 31 Javascript
为什么推荐使用JSX开发Vue3
Dec 28 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
火车头采集器3.0采集图文教程
2007/03/17 PHP
使用PHP的日期与时间函数技巧
2008/04/24 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
json简单介绍
2008/06/10 Javascript
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
浅谈JavaScript异常处理语句
2015/06/26 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
jquery实现select下拉框美化特效代码分享
2015/08/18 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
2017/02/18 Javascript
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
2018/09/17 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
2019/09/06 Javascript
[04:29]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/02/01 DOTA
深入Python解释器理解Python中的字节码
2015/04/01 Python
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
Python连接phoenix的方法示例
2017/09/29 Python
Python对数据进行插值和下采样的方法
2018/07/03 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
Python实现播放和录制声音的功能
2020/08/12 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
讲座主持词
2014/03/20 职场文书
死亡赔偿协议书
2015/01/28 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
2015年体育部工作总结
2015/04/02 职场文书
担保书格式范文
2015/09/22 职场文书