js+canvas实现动态吃豆人效果


Posted in Javascript onMarch 22, 2017

效果图:

js+canvas实现动态吃豆人效果

代码如下:

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title>吃豆人V01</title>
</head>
<body>
<canvas id="canvas" width="500px" height="500px" style="border: 1px solid black"></canvas>
<script>
 var canvas = document.getElementById("canvas");
 var context = canvas.getContext("2d");
 //TODO 面向对象方式解析
 //TODO 1.创建吃豆人的对象模板
 function Pacman(){
 //TODO 属性
 this.isOpen = true;//TODO 开关
 this.start = 45*Math.PI/180;
 this.end = 315*Math.PI/180;
 //TODO 方法
 //TODO 1.绘制方法
 this.paint = function(){
  //TODO 吃豆人的脸
  context.beginPath();
  context.arc(250,200,100,this.start,this.end);
  context.lineTo(250,200);
  context.closePath();
  context.fillStyle = "yellow";
  context.fill();
  context.stroke();
  //TODO 吃豆人的眼睛
  context.beginPath();
  context.arc(250,150,15,0,Math.PI*2);
  context.fillStyle = "black";
  context.fill();
  //TODO 吃豆人的眼神
  context.beginPath();
  context.arc(255,145,5,0,Math.PI*2);
  context.fillStyle = "white";
  context.fill();
 }
 //TODO 2.控制开闭切换
 this.open = function(){
  if(this.isOpen){//TODO 开口
  this.start = 45*Math.PI/180;
  this.end = 315*Math.PI/180;
  this.isOpen = false;
  }else{//TODO 闭口
  this.start = 0;
  this.end = Math.PI*2;
  this.isOpen = true;
  }
 }
 }
 //TODO 创建吃豆人的对象
 var pacman = new Pacman();
 //TODO 核心控制器
 setInterval(function(){
 context.clearRect(0,0,canvas.width,canvas.height);
 pacman.paint();
 pacman.open();
 },200);
</script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
Mar 24 Javascript
基于jquery的button默认enter事件(回车事件)。
May 18 Javascript
深入document.write()与HTML4.01的非成对标签的详解
May 08 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
Sep 04 Javascript
AngularJs中route的使用方法和配置
Feb 04 Javascript
javascript实现计时器的简单方法
Feb 21 Javascript
全面理解JavaScript中的闭包
May 12 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
May 27 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
Aug 19 jQuery
详解Webpack-dev-server的proxy用法
Sep 08 Javascript
浅析JS中NEW的实现原理及重写
Feb 20 Javascript
js+html+css实现手动轮播和自动轮播
Dec 30 Javascript
JavaScript实现星星等级评价功能
Mar 22 #Javascript
discuz表情的JS提取方法分析
Mar 22 #Javascript
详解vue2.0组件通信各种情况总结与实例分析
Mar 22 #Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
Mar 22 #Javascript
Vue计算属性的学习笔记
Mar 22 #Javascript
Angular2实现自定义双向绑定属性
Mar 22 #Javascript
Bootstrap如何激活导航状态
Mar 22 #Javascript
You might like
从手册去理解分析PHP session机制
2011/07/17 PHP
php操作SVN版本服务器类代码
2011/11/27 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
php中的观察者模式简单实例
2015/01/20 PHP
php将日期格式转换成xx天前的格式
2015/04/16 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
JS+CSS设置img在DIV中只显示Img垂直居中的部分
2013/10/24 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
jQuery实现简单隔行变色的方法
2016/02/20 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
2017/07/11 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
使用Vue动态生成form表单的实例代码
2018/04/26 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
Vue项目实现简单的权限控制管理功能
2019/07/17 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
[01:38]完美世界DOTA2联赛PWL S3 集锦第四期
2020/12/21 DOTA
python实现2014火车票查询代码分享
2014/01/10 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
Python @property及getter setter原理详解
2020/03/31 Python
python利用platform模块获取系统信息
2020/10/09 Python
用python发送微信消息
2020/12/21 Python
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
教育学专业毕业生的自我评价
2013/11/21 职场文书
成品仓管员岗位职责
2013/12/11 职场文书
工业学校毕业生自荐书
2014/01/03 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
弘扬焦裕禄精神走群众路线思想汇报
2014/09/12 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
2016消防宣传标语口号
2015/12/26 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
永中文档在线转换预览基于nginx配置部署方案
2022/06/10 Servers