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 相关文章推荐
JQuery 获取和设置Select选项的代码
Feb 07 Javascript
js escape,unescape解决中文乱码问题的方法
May 26 Javascript
Javascript中引用示例介绍
Feb 21 Javascript
JavaScript声明变量时为什么要加var关键字
Sep 29 Javascript
js控制文本框禁止输入特殊字符详解
Apr 07 Javascript
bootstrap模态框关闭后清除模态框的数据方法
Aug 10 Javascript
vue完成项目后,打包成静态文件的方法
Sep 03 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
Oct 28 Javascript
微信小程序实现底部导航
Nov 05 Javascript
详解Vue用cmd创建项目
Feb 12 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
Sep 03 Javascript
Vue实现菜单切换功能
Nov 08 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中调用其他系统http接口的方法说明
2014/02/28 PHP
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
php操作redis命令及代码实例大全
2020/11/19 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
node.js require() 源码解读
2015/12/13 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
使用ionic播放轮询广告的实现方法(必看)
2017/04/24 Javascript
微信小程序如何获知用户运行小程序的场景教程
2017/05/17 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
Vue项目自动转换 px 为 rem的实现方法
2018/10/29 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
Python中的getopt函数使用详解
2015/07/28 Python
Python爬取qq music中的音乐url及批量下载
2017/03/23 Python
django在接受post请求时显示403forbidden实例解析
2018/01/25 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
50道外企软件测试面试题
2014/08/18 面试题
文职个人求职信范文
2013/09/23 职场文书
物业管理求职自荐信
2013/09/25 职场文书
大三学生入党思想汇报
2014/01/02 职场文书
手机被没收的检讨书
2014/10/04 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
导游词之烟台威海蓬莱
2019/11/14 职场文书
2020年个人安全保证书参考模板
2020/01/08 职场文书