HTML5 Canvas 可以快速創(chuàng)建出有助于游戲開發(fā)的輕型圖片。 本部分說明如何使用 Canvas 創(chuàng)建將在網(wǎng)頁(yè)中運(yùn)行的懷舊風(fēng)格外太空飛行游戲。 此游戲的設(shè)計(jì)主要是為了展示使用 Canvas 功能開發(fā) Web 游戲的基本原則。 此太空游戲的目標(biāo)是,使您的宇宙飛船穿過分布著爆炸小行星的星域,安全返回基地。
本教程包含運(yùn)行游戲的完整代碼。代碼是使用 HTML5 Canvas 和 JavaScript 編寫的,包含四個(gè)獨(dú)立的有注釋代碼示例。 每個(gè)示例都涉及一項(xiàng)關(guān)鍵的編程任務(wù),這些任務(wù)是開發(fā)游戲的不同方面所必需的。 第四個(gè)代碼示例將所有任務(wù)組合在一起,創(chuàng)建了一個(gè)完整有效的游戲,您可以使用箭頭鍵移動(dòng)飛船,穿越分布著爆炸紅色小行星的星域迷宮。 如果您的飛船撞到行星,則將被毀壞。 為了安全返回基地,您必須避開小行星,或在您撞上小行星之前將其炸毀。 將根據(jù)您移動(dòng)飛船的次數(shù)和您發(fā)射的炸彈數(shù)來進(jìn)行計(jì)分。
本主題包括一個(gè)獨(dú)立的有注釋代碼示例,為您演示如何使用 HTML5 Canvas 和 JavaScript 創(chuàng)建包含白色星星的隨機(jī)區(qū)域,以及繪制外形像飛盤一樣的橙綠相間的宇宙飛船。 此游戲圖像是使用像素創(chuàng)建的。 通過使用即時(shí)模式,Canvas 具有將像素直接放在屏幕上的能力。 此功能您能夠輕松地在需要的位置,以選擇的顏色繪制點(diǎn)、線和形狀。 此代碼示例將為您演示如何通過在形狀中組合數(shù)學(xué)貝塞爾曲線和顏色來創(chuàng)建宇宙飛船。 然后,它將說明如何使用由弧形組成的小圓圈來繪制星星。
此代碼示例包含以下任務(wù)來演示使用Canvas 繪制這些游戲元素的基本原則:
1.向網(wǎng)頁(yè)添加 Canvas 元素
2.創(chuàng)建黑色背景
3.在背景上繪制隨機(jī)星星
4.向背景添加宇宙飛船
代碼示例的末尾是討論材料,說明有關(guān)這些任務(wù)的設(shè)計(jì)和結(jié)構(gòu)以及工作方式的詳細(xì)信息。
Canvas 代碼示例:
Canvas 代碼示例討論
本節(jié)說明本代碼示例的設(shè)計(jì)和結(jié)構(gòu)。 它為您講解代碼的不同部分,以及整合它們的方式。 Canvas 示例使用標(biāo)準(zhǔn) HTML5 標(biāo)頭 ,以便瀏覽器可以將它作為 HTML5 規(guī)格的一部分加以區(qū)別。
代碼分成兩個(gè)主要部分:
1.主體代碼
2.腳本代碼
主體代碼
在頁(yè)面加載時(shí),主體標(biāo)記使用 onload 函數(shù)調(diào)用 canvasSpaceGame 函數(shù)。 Canvas 標(biāo)記是主體的一部分。 指定了 Canvas 初始寬度和高度,還指定了 ID 屬性。 必須使用 ID,才能將 canvas 元素添加到頁(yè)面的對(duì)象模型中。
腳本代碼
腳本代碼包括三個(gè)函數(shù): canvasSpaceGame、stars 和 makeShip。 加載頁(yè)面時(shí)將調(diào)用 canvasSpaceGame 函數(shù)。 stars 和 makeShip 都是從 canvasSpaceGame 調(diào)用的。
canvasSpaceGame 函數(shù)
加載頁(yè)面時(shí)將調(diào)用此函數(shù)。 它通過在主體代碼中使用 Canvas 元素 ID 來獲取畫布, 然后獲取畫布的上下文,并準(zhǔn)備好接受繪圖。 將上下文初始化為 2D 畫布后,使用 fillStyle、rect 和 fill 方法將畫布繪制為黑色。
stars 函數(shù)
此函數(shù)是從 canvasSpaceGame 調(diào)用的。 它使用 for loop 在二維平面上生成 50 個(gè)潛在的星星位置,然后使用 fillStyle 創(chuàng)建白色。 隨后,會(huì)進(jìn)行一項(xiàng)檢查,確認(rèn) x,y 坐標(biāo)是否與左上角過于靠近。 如果星星繪制得與左上角過于靠近,則會(huì)將 fillStyle 更改為黑色,使其不會(huì)妨礙宇宙飛船。 隨后,使用 arc 方法繪制每個(gè)星星并使用相應(yīng)的填充顏色。
makeShip
此函數(shù)是從 canvasSpaceGame 調(diào)用的。 使用一系列的 beginPath、moveTo、bezierCurveTo、closePath、fillStyle 和 fill 方法,繪制一個(gè)簡(jiǎn)單的宇宙飛船。
飛船是通過繪制兩個(gè)橢圓來創(chuàng)建的,一個(gè)橢圓在另一個(gè)的上面。 它首先在 Adobe Illustrator CS5 中繪制,然后使用 的 Ai2Canvas 插件將圖像導(dǎo)出到 Canvas。 生成的 Canvas 代碼已復(fù)制并粘貼到此示例的代碼中。
標(biāo)簽:陜西 公主嶺 黃石 山南 南平 黃石 平頂山
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用html5 canvas創(chuàng)建太空游戲的示例》,本文關(guān)鍵詞 使用,html5,canvas,創(chuàng)建,太空,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。