Canvas 帧动画吃苹果小游戏
建站知识 2021-07-02 23:00www.168986.cn长沙网站建设
先看页面效果。狼蚁网站SEO优化四个按钮分别表示开始、结束、暂停、继续
狼蚁网站SEO优化是帧动画图片素材
帧动画的实现,关键是Canvas API ctx.drawImage() (9个参数)和 setInterval 定时器。
设置图片的视图窗口,每次执行定时任务,位移展示下一帧图片。
直接上代码,Ctrl+C/V 即插即用
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>帧动画</title> </head> <body> <canvas id="canvas" width="400" height="300"></canvas> <div class=""> <button class="start-btn" type="button">重新吃</button> <button class="end-btn" type="button">不吃了</button> <button class="pause-btn" type="button">歇一歇</button> <button class="continue-btn" type="button">继续吃</button> </div> <script type="text/javascript"> const canvas = document.getElementById("canvas") canvas.style.border = "1px solid black" const ctx = canvas.getContext("2d") const img = new Image() // 创建图片对象 let timer // 定时器标识符 let millisec = 300 // 执行时间间隔 let colIndex = 0 // 列数 let rowIndex = 0 // 行数 const timerFun = () => { // 声明定时器执行函数 console.log("设置定时器"); ctx.clearRect(0, 0, canvas.style.width, canvas.style.height) // 清除画布 if (rowIndex < 3) { // 如果是前5帧 ctx.drawImage(img, colIndex 240, rowIndex 240, 200, 200, 50, 50, 200, 200) // 图片对象,x坐标,y坐标(注图片上定位的坐标),width,height(图片上截取的大小),x坐标,y坐标(注图片在画布上的起点,即左上角),width,height(缩放,不是裁剪) colIndex++ // 下一帧 if (colIndex > 4) { colIndex = 0 rowIndex++ } } else { colIndex = 0 rowIndex = 0 } } img.onload = () => { timer = setInterval(timerFun, millisec) } img.src = "image/apple.jpg" const startBtn = document.getElementsByClassName('start-btn')[0] const endBtn = document.getElementsByClassName('end-btn')[0] const pauseBtn = document.getElementsByClassName('pause-btn')[0] const continueBtn = document.getElementsByClassName('continue-btn')[0] startBtn.addEventListener('click', () => { console.log("点击开始", timer) clearInterval(timer) colIndex = 0 // 列数 rowIndex = 0 // 行数 timer = setInterval(timerFun, millisec) }) endBtn.addEventListener('click', () => { console.log("点击结束", timer) clearInterval(timer) colIndex = 0 rowIndex = 0 ctx.drawImage(img, colIndex 240, rowIndex 240, 200, 200, 50, 50, 200, 200) timer = 0 }) pauseBtn.addEventListener('click', () => { console.log("点击暂停", timer) clearInterval(timer) timer = 0 }) continueBtn.addEventListener('click', () => { if (timer) { alert('吃着呢,别催') return } console.log("点击继续", timer) timer = setInterval(timerFun, millisec) }) </script> </body> </html>
到此这篇关于Canvas 帧动画吃苹果小游戏的文章就介绍到这了,更多相关Canvas 帧动画内容请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章,希望大家以后多多支持狼蚁SEO!
长沙网站设计
- 如何进行东阳SEO关键词优化?
- 边坝哪有关键词排名优化:提升你的网站流量与
- 安国百度优化服务:提升您的在线可见性
- 阜康新手做SEO怎么做
- 山西seo网站排名关键词优化:提升您网站曝光率
- 临沂seo网站排名关键词优化:提高你的网站可见
- 广西SEO网站推广怎样付费比较合理
- 双辽SEO网站推广:提升你的网站可见性与流量
- 辽宁企业网站优化购买方式有哪些
- 提升宝清百度SEO排名的实用技巧与策略
- 静宁百度SEO排名:提升您网站曝光率的关键策略
- 彭州百度SEO排名的提升策略和实施指南
- 广南百度关键词SEO:提升网站排名的关键策略
- 辽宁关键词优化怎么做论坛营销
- 吉林百度seo排名如何做到让用户满意
- 内黄百度优化服务:提升在线可见性的关键