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 相关文章推荐
$(&quot;&quot;).click与onclick的区别示例介绍
Sep 25 Javascript
node.js中的fs.utimes方法使用说明
Dec 15 Javascript
javascript实现校验文件上传控件实例
Apr 20 Javascript
javascript每日必学之继承
Feb 23 Javascript
浅谈js的ajax的异步和同步请求的问题
Oct 07 Javascript
jquery html5 视频播放控制代码
Nov 06 Javascript
详解如何在react中搭建d3力导向图
Jan 12 Javascript
Vue.js 2.x之组件的定义和注册图文详解
Jun 19 Javascript
解决vue-cli3 使用子目录部署问题
Jul 19 Javascript
微信小程序如何再次获取用户授权的方法
May 10 Javascript
vue项目前端知识点整理【收藏】
May 13 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
Feb 10 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
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
javascript常用方法汇总
2014/12/02 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
JavaScript使用function定义对象并调用的方法
2015/03/23 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
package.json文件配置详解
2017/06/15 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
JS实现打字游戏
2019/12/17 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
Python3基础之list列表实例解析
2014/08/13 Python
Python的Django框架可适配的各种数据库介绍
2015/07/15 Python
Python模块包中__init__.py文件功能分析
2016/06/14 Python
Python File readlines() 使用方法
2018/03/19 Python
python实现抖音视频批量下载
2018/06/20 Python
python提取xml里面的链接源码详解
2019/10/15 Python
如何基于python测量代码运行时间
2019/12/25 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
Python用户自定义异常的实现
2020/12/25 Python
详解HTML5布局和HTML5标签
2020/10/26 HTML / CSS
初一学生评语大全
2014/04/24 职场文书
乡镇党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
Java面试题冲刺第十八天--Spring框架3
2021/08/07 面试题