1. 程式人生 > >使用canvas實現行走的小人動畫

使用canvas實現行走的小人動畫

用canvas實現朝四個方向行走的小人,也可是使用鍵盤方向鍵操作行走的方向,其實就是用canvas不停的清除重畫

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        canvas {
            border: 1px solid red;
        }
    </style>
</head>
<body>
<canvas id="cas" width="300" height="300">
    您的瀏覽器不支援canvas,請升級到最新的瀏覽器
</canvas>
<input type="button" id="up" value="上"/>
<input type="button" id="down" value="下"/>
<input type="button" id="left" value="左"/>
<input type="button" id="right" value="右"/>
<script>
    var cas = document.getElementById("cas");
    var ctx = cas.getContext("2d");
    var img = new Image();
    img.src = "imgs/soldiers.png";

    var w = img.width / 4,
            h = img.height / 4;
    var i = 0;      //切換圖片的標誌
    var flag = 0;   //方向的標誌
    img.onload = function () {
        setInterval(function () {
            //清除
            ctx.clearRect(0, 0, cas.width, cas.height);
            //將圖片畫入canvas中
            /*
            * 第一個引數是圖片的物件
            * 第二個和第三個引數是 圖片左上角的x,y座標點
            * 第四個和第五個引數是 圖片的寬 高
            * 第六個和第七個引數是 顯示在畫布上的x,y座標點
            * 第八和第九個引數 顯示在畫布上的寬高
            * */
            ctx.drawImage(img, w * i, h * flag, w, h, 100, 100, w, h);
            i++;
            i = i % 4;//迴圈,這樣才是一個迴圈走動的過程
        }, 150);
    }
    //向後走
    document.getElementById("up").onclick = function () {
        flag = 3;
    }
    //向前走
    document.getElementById("down").onclick = function () {
        flag = 0;
    }
    //向左走
    document.getElementById("left").onclick = function () {
        flag = 1;
    }
    //向右走
    document.getElementById("right").onclick = function () {
        flag = 2;
    }

    //*************按方向鍵,讓人物轉變方向 左-37 上-38 右-39 下-40 *******************
    document.onkeyup = function (e) {
        switch (e.keyCode) {
            case 37:
                flag = 1;
                break;
            case 38:
                flag = 3;
                break;
            case 39:
                flag = 2;
                break;
            case 40:
                flag = 0;
                break;
        }
    }
</script>
</body>
</html>
demo下載地址:demo連線地址

相關推薦

使用canvas實現行走小人動畫

用canvas實現朝四個方向行走的小人,也可是使用鍵盤方向鍵操作行走的方向,其實就是用canvas不停的清除重畫 <!DOCTYPE html> <html> <head lang="en"> <meta charset

用css3和canvas實現的蜂窩動畫效果

image() all nim 自己 clas 函數 顯示 var 不兼容 近期工作時研究了一下css3動畫和js動畫。主要是工作中為了增強頁面的趣味性,大家都有意無意的加入了非常多動畫效果。當然大部分都是css3動畫效果。能夠gpu加速,這會降低移動端的性能需求。 今

基於 HTML5 Canvas 實現的文字動畫特效

前言文字是網頁中最基本的元素,一般我們在網頁上都是展示的靜態文字,但是就效果來說,還是比較枯燥的。文字淡入淡出的動畫效果在專案中非常實用,如果有某些關鍵的文字,可以通過這種動態的效果來提醒使用者閱讀。動態效果圖這個 Demo 是不斷重複地設定文字的大小和透明度,這些英文字母也

canvas實現圍繞旋轉動畫

使用canvas的convas來實現圍繞旋轉動畫,外圈順時針,裡層逆時針 html檔案 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8">

canvas實現有遞增動畫的環形進度條

  哈?標題不知道啥意思? 老規矩,直接看圖! 效果如下:   高清大圖!   碼農多年,老眼昏花,動圖看不清?!那就看靜態截圖!!! 不同分值效果如下:         

canvas實現紅心飄飄的動畫效果

兩週前,專案裡需要實現一個紅心飄飄的點贊效果。抓耳撓腮了老半天,看了幾篇大佬的文章,終於算是摸了個七七八八。不禁長嘆一聲,還是菜啊。先來看一下效果:(傳送門進去點一波) 一、Bezier曲線運動軌跡 其實用大白話描述一下需求就是讓一個紅心圖片沿著貝塞爾曲線的軌跡走,然後邊走邊消失。核心在於得到貝塞爾曲線

canvas實現圓形進度條動畫的示例

本篇文章小編主要和大家分享一下canvas實現圓形進度條動畫的示例,文章中會有程式碼列出供大家參考學習,對HTML5開發感興趣的小夥伴就隨小編一起來了解一下吧。 本文介紹了canvas實現圓形進度條動畫,分享給大家,具體如下: 1、canvas的HTML部分很簡單就一個canvas標籤

canvas實現畫中畫動畫效果--網易娛樂年度盤點H5動畫解密

前言 由於本人最近在做一些 growth hacking 的工作,業務上以後可能也會涉及去做一些能夠在朋友圈火爆分享的 H5 頁面,突然想到去年看到一個網易娛樂年度新聞盤點的 H5 頁面非常的新穎,採用畫中畫的形式依次串聯十多個手繪娛樂圖片,加上洗腦的“好運來”音樂,讓人有很大的分享的慾望。 手機掃碼體驗

使用canvas實現簡單動畫

大多數 Canvas 繪圖 API 都沒有定義在 <canvas> 元素本身上,而是定義在通過畫布的 getContext()獲得的一個“繪圖環境”物件上。實現如下星星的運動<!DOCTYPE html> <html> <head&g

canvas實現全屏背景冒泡動畫

class BGBubble { constructor(opts) { this.defaultOpts = { id: '', //容器ID num: 100,

JS實現透明度漸變動畫

spa clas meta nload fun .get log 浮點 class <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <

canvas實現視頻截圖

context onclick 實現 spl val src text button ext2 截取視頻當前播放畫面,直接上源碼。 <body> <div class="container"> <video id="test

css實現的loading動畫

nbsp city display tip nim fill abs utf-8 title 第一種: <!DOCTYPE html> <html> <head> <title>loading</t

趙雅智_運用Bitmap和Canvas實現圖片顯示,縮小,旋轉,水印

bitmap raw 圖形 res efault ast bmp 運用 放置 上一篇已經介紹了Android種Bitmap和Canvas的使用,以下我們來寫一個詳細實例 http://blog.csdn.net/zhaoyazhi2129/article/details

使用 Facebook開源動畫庫 POP 實現真實衰減動畫

tran rect mov rec efault gin calayer uibutton height 1. POP動畫基於底層刷新原理。是基於CADisplayLink,1秒鐘運行60秒,接近於遊戲開發引擎 @interface Vie

使用canvas實現環形進度條

cti anim 效果 math png utf-8 context request var html代碼: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta

JS 實現無縫滾動動畫原理(初學者入)

padding absolute hidden 高度 pos sof add align meta   這段時間在教培訓班的學生使用原生javascript實現無縫滾動的動畫案例,做了這個原理演示的動畫,分享給自學JS的朋友!博主希望對你們有幫助! 在講解之前先看一下de

canvas實現刮圖效果

move 技術 flag blog tex 保留 ast rec 效果 <canvas id="myCanvas" width=300 height=300></canvas> JavaScript代碼: var canvas = doc

HTML5 file API加canvas實現圖片前端JS壓縮並上傳 (轉載)

www. 手機 回調 pre lan 瀏覽器中 rdp 效果 二進制 一、圖片上傳前端壓縮的現實意義 對於大尺寸圖片的上傳,在前端進行壓縮除了省流量外,最大的意義是極大的提高了用戶體驗。 這種體驗包括兩方面: 由於上傳圖片尺寸比較小,因此上傳速度會比較快,交互會更

transition屬性實現hover漸變動畫效果

span style -o 效果 web 自定義 動畫效果 microsoft 默認 transition:顏色 變換延續的時間 變換速率 transition:background-color 0.3s linear 變換速率: 1、ease:(逐漸變慢)默認值,ease