利用HTML5 Canvas製作鍵盤及滑鼠動畫的實例分享_html5教學技巧
canvas
html5
動畫
鍵盤控制小球移動
眾所周知,我們所看到的動畫其實就是一系列靜態畫面快速切換,讓肉眼因視覺殘像產生了「畫面在活動」的視覺效果。明白了這一點後,在canvas上繪製動畫效果就顯得比較簡單了。我們只需要將某個靜態圖形先清除,然後在另一個位置重新繪製,如此反复,讓靜態圖形按照一定的軌跡進行移動,就可以產生動畫效果了。
下面,我們在canvas上繪製一個實心小球,然後用鍵盤上的方向鍵控制小球的移動,從而產生動態效果。範例程式碼如下:
JavaScript Code複製內容到剪貼簿
- html>
- "UTF-8">
-
html5 canvas繪製可移動的小球入門範例 - "moveBall(event)">
- style="border: 1px solid red;">
- 您的瀏覽器不支援canvas標籤。
- <script><span class="string">"text/javascript"</script>>
- //取得Canvas物件(畫布)
- var canvas = document.getElementById("myCanvas"
- //表示圓球的類別
- function Ball(x, y ,radius, speed){
- this.x = x || 10; //圓球的預設值
- this.y = y || 10; //圓球的預設值 this
- .radius = radius || 10; //圓球的半徑,預設為10 🎜> this.speed = speed || 5; /圓球的速度,
- //上移動
- this.moveUp = function (>
- function( this.y -= this
- if(this.y radius){
- //防止超出上方邊界 this.y =
- } };
- //向右移動
- this.moveRight =
- function(> function
- (>( this .x =
- this. var maxX = canvas.width - this
- 🎜> if(this. 🎜> this
- . > //防止超過右邊界
- this.x = maxX; }
- };
- //向左移動
- this.moveLeft = function(>function
- (>( this.x -= this
- if(this. 🎜>this. radius){
- //防止超出左邊界
- this.x = } };
- //向下移動
- this .moveDown =
- function(>function(>( this
- .y = this. var maxY = canvas.height -
- this if(this .y >
- //防止超出下邊界 this
- .y = maxY; .y = maxY;
- } };
- }
- //畫小球
- function drawBall(ball){
- if(typeof
- ctx >){ ctx.beginPath(); ctx.arc(ball.x, ball.y, ball.radius, 0, Math.PI * 2, false > ctx.fill();
- }
- }
- //清空canvas畫布
- function clearCanvas(){
- if(typeof ctx >){ ctx.clearRect(0, 0, 400, 300);
- }
- }
- var
-
ball = var Ball();
Ball(); //簡單地偵測目前瀏覽器是否支援Canvas對象,以免在一些不支援html5的瀏覽器中提示語法錯誤 - if
- (canvas.getContext){ //取得對應的CanvasRenderingContext2D物件(畫筆)
- var
- ctx = canvas.getContext("2d"; drawBall(ball); }
- //onkeydown事件的回呼處理函數
- //依照使用者的按鍵控制小球的移動
- function moveBall(event){
- switch(event.keyCode){
- case 37: //左方向鍵> ball.moveLeft();
- break
- ; case
- 38: //上方向鍵> ball.moveUp(); break
- ;
- case 39: //方向鍵約
- ball.moveRight(); break;
- case
- 40: //下方方向鍵 ball.moveDown();
- break; default
- :
- return;
- } clearCanvas(); //先清空畫布
- drawBall(ball); //再繪製最新的小球
- }
- 請使用支援html5的瀏覽器開啟以下網頁以查看實際效果(使用方向鍵進行移動):
- 使用canvas繪製可移動的小球。
- 小丑笑臉 只需要了解很少的幾個API,然後使用需要的動畫參數,就能製作出這個有趣又能響應你的動作的Web動畫。
- 第一步,畫五官 這個小丑沒有耳朵和眉毛,所以只剩下三官,但它的兩個眼睛我們要分別繪製,所以一共是四個部分。下面先看看程式碼。
- 繪製左眼的代碼
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章
刺客信條陰影:貝殼謎語解決方案
1 個月前
By DDD
Windows 11 KB5054979中的新功能以及如何解決更新問題
3 週前
By DDD
在哪裡可以找到原子中的起重機控制鑰匙卡
1 個月前
By DDD
如何修復KB5055523無法在Windows 11中安裝?
2 週前
By DDD
Inzoi:如何申請學校和大學
3 週前
By DDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)