天天看到别人玩连连看, 表示没有认真玩过, 不就把两个一样的图片连接在一起么, 我自己写一个都可以呢。

使用Javascript写了一个, 托管到github, 在线DEMO地址查看:打开

最终的效果图:

写连连看之前要先考虑哪些呢?

1:如何判断两个元素可以连接呢, 刚刚开始的时候我也纳闷, 可以参考这里:打开;

2:模板引擎怎么选择呢, 我用了底线库的template,因为语法简单。 本来想用Handlebars,但是这个有点大啊, 而且底线库也提供很多常用工具方法( •̀ ω •́ )y;

3:布局如何布局呢, 用table, td加上边框, 边框内部一个div,div就是连连看的棋子, 界面更清爽, 简单, 其实直接用canvas写也行, 没认真研究过canvas;

4:两个元素连接时连线的效果我们要怎么实现呢,如果用dom实现那么需要用到图片,元素连接时候把图片定位到连接的路径。 或者用canvas, 直接用canvas把连接的效果画出来, 我选择后者;

因为我不考虑低浏览器, 使用了zeptoJS库, 基于习惯,把bootstrap也引用了;

使用了三个主要构造函数, 包括Data, View, Score;

View的结构如下, 东西比较少 包括事件绑定, 界面生成, 以及当两个相同元素消失时的 绘图效果:

View

/**

* @desc 根据数据生成map

* */

renderHTML : function

/**

* @desc 界面的主要事件绑定

* @return this;

* */

bindEvents : function

/**

* @desc 工具方法,在canvas上面进行绘图;

* @param [{x:0,y:0},{x:1,y:1},{x:2,y:2},{x:3,y:3}]一个数组, 会自动重绘;

* */

showSparkLine : function

tbody内部元素的模板是这样的:

上面代码的getImg方法会调用全局window的getImg方法,这个方法是根据数据生成图片字符串, 是一个辅助的函数:

window.getImg = function( num ) {

switch(num){

case 1:

return "

";

case 2:

return "

";

case 3:

return "

";

case 4:

return "

";

case 5:

return "

";

case 6:

return "

";

}

};

因为连连看的数据是个二维的数组, 所以模板中必须使用两个for循环, 循环产生HTML字符串, 如果把数据和模板合在一起, 会生成下图的DOM结构:

分数模块构造函数Score, 所有有关得分的代码就这些了 (把元素传进去, 直接调用生成实例的addScore方法, 会自动渲染DOM), 为分数单独写一个构造函数是因为为了解耦:

Score = function(el) {

this.el = $(el);

this.score = 0;

};

$.extend( Score.prototype , {

/**

* @desc 改变元素的HTML,递增分数;

* @param

* */

addScore : function() {

this.el.html(++this.score);

}

});

构造函数Data, 主要的结构如下 , 虽然方法比较少, 实际上Data这块代码占了300行.... 要判断元素是否可以连接用canConnect方法,canConnect方法又会调用dirConnect方法, 计算比较繁琐, 想了解的话最好自己写写:

//新建初始化

newData : function

//工具方法,随机混肴数组;

suffer : function

/**

* @desc set值,把地图中对应的数据清空或者设置,两用接口

* @param x, y

* @return chain

* */

set : function

/**

* @desc 判断两个元素之间是否可以连接

* @param [{x:1,y:1},{x:1,y:1}]

* @return false || []

* */

canConnect : function

/**

* @desc 判断元素是否可以直连

* @param [{x:1,y:1},{x:1,y:1}]

* @return false || true

* */

dirConnect

所有所有代码如下, 作为参考:

link

得分0

Your browserdoes not support the canvas element.

在线DEMO地址查看:打开

找到了一个别人写的连连看, 代码极少, 作为参考吧:

连连看

以上所述 就是本文的全部内容了,希望大家能够喜欢。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php 连连看游戏开发,JavaScript编写连连看小游戏_javascript技巧相关推荐

  1. 用javascript编写的小游戏-打砖块

    用javascript编写的小游戏-打砖块 前言 启发 下载链接 游戏功能说明 代码效果演示 代码 后记 前言 这是我在CSDN发表的第一篇文章.是我在初学javascript后, 忽然来了兴致, 编 ...

  2. 视频教程-Layabox3D游戏开发入门-微信3D小游戏案例 -微信开发

    Layabox3D游戏开发入门-微信3D小游戏案例 有多年Unity程序开发经验,有策划和美术设计的经验.愿意在csdn这个平台和大家一起分享! 金龙 ¥29.00 立即订阅 扫码下载「CSDN程序员 ...

  3. linux打地鼠游戏代码,JavaScript实现打地鼠小游戏

    一.实验说明 1. 环境介绍 本实验环境采用Ubuntu Linux桌面环境,实验中会用到桌面上的程序: Xfce终端: Linux命令行终端,打开后会进入Bash环境,可以使用Linux命令 Fir ...

  4. html5游戏开发-弹幕+仿雷电小游戏demo

    本游戏使用的是html5的canvas,运行游戏需要浏览器支持html5. 本篇文章详细讲解如何用html5来开发一款射击游戏,雷电可以说是射击游戏中的经典,下面就来模仿一下. 先看一下游戏截图 演示 ...

  5. 游戏开发15课 微信小游戏自审报告

    微信小游戏个人提交的时候需要写下自审报告 然后打印签名 后拍照上传以下是模板有兴趣的可以看看 自审报告 本⼈根据<网络游戏管理暂行办法>对我开发的小游戏产品<xxxx>进行自行 ...

  6. 《游戏开发》html5 益智小游戏-小熊吃星星

    游戏截图 项目结构 一共3个文件 分别为 index.html   script.js style.css index.html文件源码展示 <!DOCTYPE html> <htm ...

  7. 游戏开发22课 cocoscreator 小游戏分包

    小游戏分包 部分小游戏平台支持分包功能以便对资源.脚本和场景进行划分.Creator 从 v2.4 开始支持 Asset Bundle,开发者可以将需要分包的内容划分成多个 Asset Bundle, ...

  8. html连连看小游戏论文,JavaScript编写连连看小游戏

    天天看到别人玩连连看, 表示没有认真玩过, 不就把两个一样的图片连接在一起么, 我自己写一个都可以呢. 使用Javascript写了一个, 托管到github, 在线DEMO地址查看:打开 最终的效果 ...

  9. Android游戏开发,宠物小精灵连连看

    项目名称:Android游戏开发,宠物小精灵连连看 使用工具:ADT(开发工具),Photoshop(图片处理),Visul VM(性能测试) 项目构想:由于本人比较喜欢玩连连看,而网上的连连看大多都 ...

最新文章

  1. C++ 中内存分配和回收
  2. vlc linux将摄像头串流,vlc的应用之九:用vlc串流摄像头
  3. Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(六)后端改造
  4. 大白话5分钟带你走进人工智能-第二十六节决策树系列之Cart回归树及其参数(5)...
  5. 【linux 06】 linux中的用户权限、文件权限与目录权限
  6. 安卓手机与PC不得不说的那些事 之 篇一 网络分享
  7. 对比俩个字符串的相似度
  8. python设置excel的格式_python使用xlrd与xlwt对excel的读写和格式设定
  9. 多项式输出(洛谷-P1067)
  10. (转)Spring Boot(八):RabbitMQ 详解
  11. 浅谈 js 正则字面量 与 new RegExp 执行效率
  12. 更新k8s镜像版本的三种方式
  13. 在本地电脑搭建一个网站 转自本文地址:http://www.fengzimo.com/1503.html 来源 疯子墨...
  14. xlsread错误使用matlab,运行显示错误使用xlsread,未找到文件
  15. 博弈论中SG函数的解释与运用
  16. neighbors.kneighbors_graph的原理和应用
  17. Cocos2dx 3.2 横版过关游戏Brave学习笔记(一)
  18. 如何使用Servlet,JSP和MySQL将文件上传到数据库
  19. 高通开发笔记---yukon worknote
  20. 有向图 G=(V, E) 的拓扑排序

热门文章

  1. redis篇-基础与应用篇(上)
  2. C语言实现TCP编程
  3. 抓包分析php一句话木马
  4. 用C语言写了一个明日方舟的简略的抽卡小游戏
  5. 一文带你了解MySQL之Adaptive Hash Index
  6. ActiveX自动化在AutoCAD中的应用_94方便下载站
  7. chrome备份导出书签
  8. windows 安装 xhprof
  9. 米兔机器人自主编程_米兔积木机器人技术编程指南.pdf
  10. 通过Python开发淘宝商品详情、淘宝关键字搜索封装成API接口