首先,你要創(chuàng)建一個HTML頁面,其中包含如下canvas標(biāo)簽:

在巧家等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,網(wǎng)絡(luò)營銷推廣,外貿(mào)網(wǎng)站制作,巧家網(wǎng)站建設(shè)費(fèi)用合理。
!doctype html
html
head
title/title
/head
body style=’position: absolute; padding:0; margin:0; height: 100%; width:100%’
canvas id=”gameCanvas”/canvas
/body
/html
如果你載入以上代碼,當(dāng)然什么也不會出現(xiàn)。那是因?yàn)殡m然我們有一個canvas標(biāo)簽,但我們還沒在上面繪制任何東西。我們來添加一些簡單的canvas命令來繪制小箱子吧。
head
title/title
script type=’text/javascript’
var canvas = null;
function onload() {
canvas = document.getElementById(‘gameCanvas’);
var ctx = canvas.getContext(“2d”);
ctx.fillStyle = ‘#000000′;
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = ‘#333333′;
ctx.fillRect(canvas.width / 3, canvas.height / 3, canvas.width / 3,
canvas.height / 3);
}
/script
/head
body onload=’onload()’ …
在這個例子中,我已經(jīng)在body標(biāo)簽中添加了一個onload事件,然后執(zhí)行功能獲得畫布元素,并繪制幾個箱子。非常簡單。
result 1(from webappers.com)
這個箱子不錯,但你會注意到,畫布沒有鋪滿整個瀏覽器窗口。為了解決這個問題,我們可以增加畫布的寬度和高度。我是指根據(jù)畫布所包含的文件元素的大小來靈活地調(diào)整畫布尺寸。
var canvas = null;
function onload() {
canvas = document.getElementById(‘gameCanvas’);
canvas.width = canvas.parentNode.clientWidth;
canvas.height = canvas.parentNode.clientHeight;
…
加載后,會看到畫布鋪滿整個屏幕了。太好了。
再進(jìn)一步,如果瀏覽器窗口大小是由用戶調(diào)整的,還要重置畫布的尺寸。
var canvas = null;
function onload() {
canvas = document.getElementById(‘gameCanvas’);
resize();
}
function resize() {
canvas.width = canvas.parentNode.clientWidth;
canvas.height = canvas.parentNode.clientHeight;
var ctx = canvas.getContext(“2d”);
ctx.fillStyle = ‘#000000′;
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = ‘#333333′;
ctx.fillRect(canvas.width/3, canvas.height/3, canvas.width/3, canvas.height/3);
}
添加onresize命令到body標(biāo)簽。
body onresize=’resize()’ …
現(xiàn)在,如果你調(diào)整瀏覽器的大小,矩形應(yīng)該如下圖所示。
result 2(from webappers.com)
載入圖像
大部分游戲都需要動畫的子畫面,所以我來添加一些圖像吧。
首先,你需要圖像資源。因?yàn)槲覀円胘avascript繪制它,所以我覺得先聲明圖像然后設(shè)置它的src屬性為你想載入的圖像的URL,比較合理。
var img = null;
function onload() {
…
img = new Image();
img.src = ‘simba.png’;
}
然后你可以通過添加這個到resize方法中來繪制圖像:
ctx.drawImage(img, canvas.width/2 – (img.width/2), canvas.height/2 – (img.height/2));
如果重新載入頁面后,在大部分情況下,會看到圖像出現(xiàn)了。不過我說的是大部分情況下,因?yàn)檫@取決于機(jī)器跑得有多快、瀏覽器是否已經(jīng)緩存了圖像。那是因?yàn)閞esize方法的調(diào)用時間介于開始載入圖像(設(shè)置它的src屬性)的時間到瀏覽器準(zhǔn)備好的時間之間。對于一兩張圖像,這個方法可能不錯,但當(dāng)?shù)挠螒蜷_始變大時,就必須等到所有圖像加載完才能執(zhí)行活動。
給圖像添加一個通知監(jiān)聽器,這樣當(dāng)圖像準(zhǔn)備就緒時就會收到回叫信號。我得重新整理一下,以下是更新過的代碼:
var canvas = null;
var img = null; var ctx = null;
var imageReady = false;
function onload() {
canvas = document.getElementById(‘gameCanvas’);
ctx = canvas.getContext(“2d”);
img = new Image();
img.src = ‘images/simba.png’;
img.onload = loaded();
resize();
}
function loaded() {
imageReady = true; redraw();
}
function resize() {
canvas.width = canvas.parentNode.clientWidth;
canvas.height = canvas.parentNode.clientHeight; redraw();
}
function redraw() {
ctx.fillStyle = ‘#000000′;
ctx.fillRect(0, 0, canvas.width, canvas.height);
if (imageReady)
ctx.drawImage(img, canvas.width/2 – (img.width/2), canvas.height/2 – (img.height/2));
}
結(jié)果應(yīng)該是:
這個圖像顯示了的6個奔跑幀。為了把這個子畫面做成動畫,必須每次繪制一個幀。
子畫面動畫
可以用drawImage命令的源參數(shù)繪制一個幀。事實(shí)上,是只繪制源圖像的一部分。所以為了繪制這唯一的第一幀,使用允許你指定源圖像中的矩形的drawImage的拓展版。因?yàn)榈呢垊赢嬍怯?個96 x 96象素大小的幀組成的,可以添加:
ctx.drawImage(img, 0, 0, 96, 54, canvas.width/2 – 48, canvas.height/2 – 48, 96, 54);
這里的關(guān)鍵是起點(diǎn)(0, 0, 96, 54)。這限制被繪制圖像為貓動畫的第一幀。還設(shè)置根據(jù)單幀來居中,而不是包含所有6幀的整個圖像尺寸。
現(xiàn)在總算有點(diǎn)意思了。為了讓圖像動起來,我必須追蹤要繪制的幀,然后隨著時間推進(jìn)幀數(shù)。為此,必須把靜止頁面做成隔時循環(huán)的頁面。
按照老方法來做。添加60幀每秒間隔計(jì)時器。為了保證只有圖像加載后才開始循環(huán)動畫,要在loaded功能中添加以下命令:
function loaded() {
imageReady = true;
setTimeout( update, 1000 / 60 );
}
添加更新后的函數(shù),然后調(diào)用redraw:
var frame = 0;
function update() {
redraw(); frame++;
if (frame = 6) frame = 0;
setTimeout( update, 1000 / 60 );
}
當(dāng)繪制后且?guī)七M(jìn)完,計(jì)時器就會重置。
下一步,調(diào)整繪制圖像,使源窗口根據(jù)我們想要繪制的那一幀位置來移動(關(guān)鍵是給幀設(shè)置的源X位置,是幀乘上幀的大小)。
function redraw() {
ctx.fillStyle = ‘#000000′;
ctx.fillRect(0, 0, canvas.width, canvas.height);
if (imageReady)
ctx.drawImage(img, frame*96, 0, 96, 54,
canvas.width/2 – 48, canvas.height/2 – 48, 96, 54);
}
源碼簡介 相關(guān)最新源碼
HTML5圍住神經(jīng)貓游戲網(wǎng)頁版是一款基于HTML5 canvas、egret_loader.js和jquery.min.js等技術(shù)制作的圍住神經(jīng)貓網(wǎng)頁版游戲源碼。
游戲玩法:
游戲隨機(jī)出現(xiàn)灰色圓點(diǎn)和橙色圓點(diǎn),屏幕中央為一只扭動的神經(jīng)貓。游戲要求通過觸擊灰色圓點(diǎn)從而變成橙色,使橙色圓點(diǎn)將神經(jīng)貓四周全部包圍起來,進(jìn)而使其不能再行移動即為勝利。
H5是HTML5的簡稱。HTML5是HTML最新的修訂版本,是一種超文本標(biāo)記語言。H5有兩大特點(diǎn):首先,強(qiáng)化了 Web 網(wǎng)頁的表現(xiàn)性能。其次,追加了本地?cái)?shù)據(jù)庫等 Web 應(yīng)用的功能。
H5頁面就是利用html5制作出來的頁面,尤其在微信中發(fā)展迅速,借由微信這個移動社交平臺,正在走進(jìn)更多人的視野,比如從引爆朋友圈的H5小游戲《圍住神經(jīng)貓》,到顛覆傳統(tǒng)廣告的大眾點(diǎn)評H5專題頁《我們之間只有一個字》,各種H5游戲和專題頁紛紛嶄露頭角。
為活動推廣運(yùn)營而打造的H5頁面是最常見的類型,形式多變,包括邀請函、賀卡、測試題等形式。與以往簡單的靜態(tài)廣告圖片傳播不同,如今的H5活動運(yùn)營頁需要有更強(qiáng)的互動、更高質(zhì)量、更具話題性的設(shè)計(jì)來促成用戶分享傳播。
如果靜態(tài)的想實(shí)現(xiàn)的話,可以將foot做成一個庫文件,然后引用庫文件就可以啦。如果是jsp,則用link方法引入。
本文名稱:html5貓,html5貓頭像怎么弄
轉(zhuǎn)載注明:http://chinadenli.net/article47/dseechj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、搜索引擎優(yōu)化、網(wǎng)站排名、域名注冊、品牌網(wǎng)站設(shè)計(jì)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)