菜鸟做HTML5小游戏 - 刮刮乐

继上篇翻翻乐之后,又来刮刮乐。还是先上效果图:

 

开始demo的世界:

1.css去绘制界面效果。(源码提供

2.原理:要实现刮刮卡内容的出现,我用div做了背景层去显示刮出的内容结果【重点】。中间Canvas区域去实现刮刮的效果。

3.构建界面效果,背景层zj为挂出效果。Canvas去做动画

1  <div class="zj">
2 <canvas id="CanvasLe" width="280" height="140" style="margin-top:10px;"></canvas>
3  </div>
4 
5 <style>.zj{background:url("zj.png") no-repeat ;}</style>

4.开始动画

先绘制 ‘灰色’ ,然后在鼠标的移动事件Canavas.onmousemove去计算 滑动的坐标值,然后clearRect方法去清除该坐标的色素。

 1 window.onload = function(){
 2         init();
 3     }
 4     var imageWidth = "280";
 5     var imageheight = "140";
 6     function init(){
 7     //定义绘画宽 高
 8     
 9     //定义Canvas对象
10     var Canavas = document.getElementById("CanvasLe");
11     var Context2D = Canavas.getContext("2d");
12         
13     var bool =true;
14     Context2D.fillStyle='#cccccc';    //设置覆盖层的颜色
15     Context2D.fillRect(0,0,imageWidth,imageheight);    //设置覆盖的区域
16 //增加Canvas鼠标滑动事件
17     Canavas.onmousemove = function(e) {
18         var canvasOffset = $(Canavas).offset();
19         var canvasX = Math.floor(e.pageX - canvasOffset.left);
20         var canvasY = Math.floor(e.pageY - canvasOffset.top);
21         canvasY += parseInt(imageheight);
22         lottery(canvasX,canvasY,Context2D);
23     }
24     }
25 //刮刮函数
26     function lottery(x,y,c){
27         c.clearRect(x,y-imageheight,20,20);
28     }

好了,效果很明显可以根据滑动坐标清除色素块。

要是在移动手机设备上运行以上还不行,还需要加入触屏滑动事件touchmove。接下来就给去监听这个事件

 1 Canavas.addEventListener('touchmove', function(event) {
 2         // 如果这个元素的位置内只有一个手指的话
 3         if (event.targetTouches.length == 1) {
 4             event.preventDefault();// 阻止浏览器默认事件,重要 
 5             var touch = event.targetTouches[0];
 6             // 把元素放在手指所在的位置
 7             var canvasOffset = $(Canavas).offset();
 8             var canvasX = Math.floor(touch.pageX - canvasOffset.left);
 9             var canvasY = Math.floor(touch.pageY - canvasOffset.top);
10              lottery(touch.pageX,touch.pageY,Context2D);
11         }
12     }, false);

ok,大功告成。实现了刮刮卡的效果。

各位园友们可以进一步扩展,共同学习是进步的阶梯。

 

 

补充:谢谢各位园友的指出,赶紧修复源码。

测试都通过,遇到一个问题在 IE11中 background:url("s_bd.jpg") 为什么无效果,请各位高手给我指点指点,先谢谢

源码猛击 这里[修复]

 

转载于:https://www.cnblogs.com/oceanworld/p/3459732.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261001.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1 计算机主机里面都有些什么东西,计算机主机和外设分别包括那些东西?

___耐撕Nice___的回答&#xff1a;1、主机是指计算机除去输入输出设备以外的主要机体部分。也是用于放置主板及其他主要部件的控制箱体(容器Mainframe)。通常包括 CPU、内存、主板、光驱、电源、以及其他输入输出控制器和接口。在网络技术中是关于发送与接收信息的终端设备。2、…

AppDynamics赵宇辰:硅谷APM独角兽,打造DevOps领域的智能大脑

近来&#xff0c;关于机器学习的报道很多&#xff0c;国内外的大型互联网企业都在着手对机器学习的研究。对应用性能的高效管理&#xff0c;首先要了解应用的一手数据&#xff0c;通过传统的数据获取方式已经不能满足企业的发展和市场环境&#xff0c;这就需要借助机器学习的技…

江苏有保障的计算机应用技术,2022年江苏单招计算机应用技术专业公办学校名单...

2021年高职单招升学一对一咨询蒲善婷:18983252108(微信)很多考生都存在一个疑问&#xff0c;到底该选择什么样的单招学校和专业&#xff1f;其实啊&#xff0c;我们在选择时首先要了解学校的办学情况和招生专业&#xff0c;看看有没有是不是符合自己的选择条件&#xff0c;是否…

mybatis一对多查询

18 <!-- 19 方式一&#xff1a;嵌套结果&#xff1a;使用嵌套结果映射来处理重复的联合结果的子集 20 封装联表查询的数据(去除重复的数据) 21 select * from class c, teacher t where c.teacher_idt.t_id and c.c_id1 22 --> 23 …

如何选购集成吊顶

吊顶对比-选购-经验篇:集成吊顶顶行业作为一个新兴的行业类别&#xff0c;同时也是一个高速发展的行业&#xff0c;使得集成吊顶市场牌混乱不堪&#xff0c;为大家介绍 正确的选购之法。以下内容由买购网整理&#xff0c;提供给您参考。现在市场上扣板已经有很多品种了&#xf…

php - preg_match

任务&#xff1a;匹配一个函数名或者变量名&#xff0c;如果碰到alpha&#xff0c;numeric&#xff0c;_以外的全部不允许通过。 实验1&#xff1a; <?php //第一个字符不符合就直接退出正则匹配 $str %abcscript%d; var_dump(preg_match(/^(\w*)$/, $str, $matches)); va…

wp网站链接不带html,解决WordPress网站带与不带WWW网址跳转问题

我们在用wordpress搭建网站的时候是不是有些时候发现在输入WWW与不带WWW的地址都可以打开&#xff0c;以前我在配置的时候直接用WWW或者不带WWW只需要在后台设置两个统一的地址就可以。这几天在遇到一个网站发现并不是这样的&#xff0c;即便都设置了WWW的域名&#xff0c;然后…

Android环境搭建遭遇Unsupported major.minor version 52.0

为什么80%的码农都做不了架构师&#xff1f;>>> 首先&#xff0c;个人在windows 10下配置Android的开发环境。由于之前在开发Java web,所以安装了eclipse&#xff0c;MyEclipse,jdk 1.7 等。由于希望开发 android 5.1&#xff0c;早在之前也有开发过Android&#x…

[转] 实战 SSH 端口转发

http://www.cnblogs.com/napoleon_liu/articles/2020759.html转载于:https://www.cnblogs.com/GenghisKhan/archive/2012/02/09/2343468.html

标准用户如何打开计算机管理,WIN7标准账户怎样开启Administrator账户

Win7 标准用户安装软件时需要管理员权限&#xff0c;那么WIN7标准账户怎样开启Administrator账户呢?下文学习啦小编就分享了WIN7标准账户开启Administrator账户的方法&#xff0c;希望对大家有所帮助。WIN7标准账户开启Administrator账户方法一、将标准用户升级为管理员账户。…

linux删除、读取文件原理

linux删除文件原理 LINUX的文件名是存在父目录的block里面&#xff0c;并指向这个文件额inode节点&#xff0c;这个文件的inode节点再标记指向存放这个文件的block的数据块。我们删除一个文件&#xff0c;实际上并不是清楚inode节点和block的数据。只是在这个文件的父目录里面的…

delphi 窗体的释放

关于窗体的释放:Close&#xff08;&#xff09;方法是将窗体隐藏&#xff0c;即form.hide; 释放窗体或是控件的标准用法是Form.Free&#xff0c;其实Free方法只是调用了Destroy&#xff08;&#xff09;方法&#xff0c;在窗体不为nil时进行资源的释放&#xff0c;但并不将窗体…

Java数字、货币格式化

广州疯狂软件学院拥有三大课程体系包括&#xff1a;java课程&#xff0c;android课程&#xff0c;ios课程&#xff0c;本月基础强化营(可先就业后付款)火热报名中&#xff0c;欢迎有志之士电话或者咨询。 package com.tq365.util; import java.text.NumberFormat; import java.…

您没有足够的全新为该计算机所有用户安装,我用的是admin管理员身份可安装软件弹出你没有足够的权限为该计算机所有用户完成此安装.请以管理员的身份登...

匿名用户1级2012-05-13 回答估计你的是WIN7的系统。这个很正常的&#xff0c;你是用管理员账号登陆的&#xff0c;但是没有取得完全管理权限。WIN7拥有管理员权限的使用方法&#xff1a;1.右键单击“计算机”&#xff0c;进入“管理”找到“用户和组”2.找到administrators&…

eclipse 3.7安装扩展心得

最近因为突然对android发生兴趣了&#xff0c;所以就安装了eclipse来进行android开发学习。在安装过程中&#xff0c;突然想顺便把php的扩展也安装好&#xff0c;以方便以后使用&#xff0c;百度了很多下&#xff0c;很失败&#xff0c;网络上的文章要不是千篇一律的错误&#…

【心得】Ctrl+Z、\n、\0、eof的区别和用法

从scanf谈起&#xff1a; 一&#xff1a;scanf的返回值&#xff1a;读入的域的个数 int scanf( const char *format [, argument]... ); int _scanf_l( const char *format, locale_t locale [, argument]... ); int wscanf( const wchar_t *format [, argument]... ); int _ws…

MVC-05 Model(1)

在开发应用程序的过程中&#xff0c;经常需要处理许多大大小小的数据&#xff0c;例如&#xff0c;SQL Server数据库存取、连接AD(Active Directory&#xff09;数据库进行验证、调用外部Web Service取得数据等。除了访问数据外&#xff0c;也经常需要对数据做成格式验证、逻辑…

计算机 数据库知识点,数据库知识点总结

实体&#xff0d;联系模型基本概念实体和属性实体是客观存在并且可以相互区分的任何事物属性是实体所代表事物具有的某种特性每个属性都有一定的取值范围&#xff0c;成为该属性的值域实体集和码实体集是具有相同属性的实体的集合实体的值是该实体诸属性值的列表实体集的值是该…

计算机网络课程思政教学设计,信息与网络工程学院成功举办第一届课程思政教学设计大赛...

为有效贯彻全国高校思想政治工作会议精神&#xff0c;强化课程思政建设&#xff0c;全面提高人才培养质量&#xff0c;根据《教务处关于举办第一届课程思政教学设计大赛的通知》要求&#xff0c;结合学院工作安排&#xff0c;7月18日&#xff0c;信息与网络工程学院在龙湖校区西…

Java 中参数传递是传值还是引用?

2019独角兽企业重金招聘Python工程师标准>>> 明确概念 值传递&#xff1a;指的是将变量的一个备份传过去&#xff0c;当该备份被修改后&#xff0c;不会影响原来变量的值&#xff1b; 引用传递&#xff1a;指的是将该变量的地址传过去&#xff0c;当值修改后&#x…