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的live使用注意事项
Feb 18 Javascript
深入理解javascript作用域和闭包
Sep 23 Javascript
jquery实现点击页面计算点击次数
Jan 23 Javascript
Bootstrap安装环境配置教程分享
May 27 Javascript
AngularJS入门教程之双向绑定详解
Aug 18 Javascript
JSON与XML的区别对比及案例应用
Nov 11 Javascript
Bootstrap模态框使用详解
Feb 15 Javascript
详解vue的数据binding绑定原理
Apr 12 Javascript
AngularJS实现表格的增删改查(仅限前端)
Jul 04 Javascript
Vue封装的可编辑表格插件方法
Aug 28 Javascript
echarts统计x轴区间的数值实例代码详解
Jul 07 Javascript
vue下载二进制流图片操作
Oct 26 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中操作MySQL数据库的一些要注意的问题
2006/10/09 PHP
php命令行使用方法和命令行参数说明
2014/04/08 PHP
php的XML文件解释类应用实例
2014/09/22 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
PHP中SESSION过期设置
2021/03/09 PHP
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
2016/02/18 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
jQuery中的siblings()是什么意思(推荐)
2016/12/29 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
js精确的加减乘除实例
2017/11/14 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
原生js实现碰撞检测
2020/03/12 Javascript
基于VUE实现判断设备是PC还是移动端
2020/07/03 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
[01:00:44]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第三局
2016/03/04 DOTA
使用python实现rsa算法代码
2016/02/17 Python
pygame游戏之旅 调用按钮实现游戏开始功能
2018/11/21 Python
python进行参数传递的方法
2020/05/12 Python
预备党员入党自我评价范文
2014/03/10 职场文书
淘宝客服专员岗位职责
2014/04/11 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
会员活动策划方案
2014/08/19 职场文书
党员志愿者活动方案
2014/08/28 职场文书
党的群众路线教育实践活动对照检查材料
2014/09/22 职场文书
作文评语集锦
2014/12/25 职场文书
领导新年致辞2016
2015/07/29 职场文书
健康教育主题班会
2015/08/14 职场文书
《颐和园》教学反思
2016/02/19 职场文书
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android
Redis三种集群模式详解
2021/10/05 Redis
JavaScript数组 几个常用方法总结
2021/11/11 Javascript