首页前端开发HTMLCanvas 帧动画吃苹果小游戏

Canvas 帧动画吃苹果小游戏

时间2024-01-25 04:53:33发布访客分类HTML浏览673
导读:收集整理的这篇文章主要介绍了Canvas 帧动画吃苹果小游戏,觉得挺不错的,现在分享给大家,也给大家做个参考。 先看页面效果。下面四个按钮分别表示开始、结束、暂停、继续下面是帧动画图片素材:帧动画的实现,关键是Canvas API...
收集整理的这篇文章主要介绍了Canvas 帧动画吃苹果小游戏,觉得挺不错的,现在分享给大家,也给大家做个参考。

先看页面效果。下面四个按钮分别表示开始、结束、暂停、继续

下面是帧动画图片素材:

帧动画的实现,关键是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 帧动画内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: Html5饼图绘制实现统计图的方法下一篇:HTML5 video进入全屏和退出全屏的...猜你在找的html5相关文章 关于移动端h5开发相关内容总结2022-05-17html5教程-学表单的第二天2018-12-10html5教程-HTML5浏览器支持2018-12-10html5教程-HTML5智能表单2018-12-10html5教程-微信H5使用resLoader实现加载页效果2018-12-10html5教程-day01-初级-JS0-热身运动JS入门教程2018-12-10html5教程-html5shiv.js和respond.min.js2018-12-10html5教程-不同浏览器对于html5 audio标签和音频格式的兼容性2018-12-10html5教程-使用Html5实现手风琴案例2018-12-10html5教程-html5笔记2018-12-10 其他相关热搜词更多phpjavapython程序员load

若转载请注明出处: Canvas 帧动画吃苹果小游戏
本文地址: https://pptw.com/jishu/586149.html
基于HTML5+tracking.js实现刷脸支付功能 html5 横向滑动导航栏的方法示例

游客 回复需填写必要信息