婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 使用html5 canvas創(chuàng)建太空游戲的示例

使用html5 canvas創(chuàng)建太空游戲的示例

熱門標(biāo)簽:智能芯電話機(jī)器人 百度地圖標(biāo)注為什么總是封號 臨海地圖標(biāo)注app 地圖標(biāo)注柱狀圖 400開頭的電話好申請不 小朱地圖標(biāo)注 怎么做百度地圖標(biāo)注 咸陽穩(wěn)定外呼系統(tǒng)軟件 四川移動電銷外呼客戶管理系統(tǒng)

HTML5 Canvas 可以快速創(chuàng)建出有助于游戲開發(fā)的輕型圖片。 本部分說明如何使用 Canvas 創(chuàng)建將在網(wǎng)頁中運(yùn)行的懷舊風(fēng)格外太空飛行游戲。 此游戲的設(shè)計主要是為了展示使用 Canvas 功能開發(fā) Web 游戲的基本原則。 此太空游戲的目標(biāo)是,使您的宇宙飛船穿過分布著爆炸小行星的星域,安全返回基地。
本教程包含運(yùn)行游戲的完整代碼。代碼是使用 HTML5 Canvas 和 JavaScript 編寫的,包含四個獨(dú)立的有注釋代碼示例。 每個示例都涉及一項關(guān)鍵的編程任務(wù),這些任務(wù)是開發(fā)游戲的不同方面所必需的。 第四個代碼示例將所有任務(wù)組合在一起,創(chuàng)建了一個完整有效的游戲,您可以使用箭頭鍵移動飛船,穿越分布著爆炸紅色小行星的星域迷宮。 如果您的飛船撞到行星,則將被毀壞。 為了安全返回基地,您必須避開小行星,或在您撞上小行星之前將其炸毀。 將根據(jù)您移動飛船的次數(shù)和您發(fā)射的炸彈數(shù)來進(jìn)行計分。
本主題包括一個獨(dú)立的有注釋代碼示例,為您演示如何使用 HTML5 Canvas 和 JavaScript 創(chuàng)建包含白色星星的隨機(jī)區(qū)域,以及繪制外形像飛盤一樣的橙綠相間的宇宙飛船。 此游戲圖像是使用像素創(chuàng)建的。 通過使用即時模式,Canvas 具有將像素直接放在屏幕上的能力。 此功能您能夠輕松地在需要的位置,以選擇的顏色繪制點、線和形狀。 此代碼示例將為您演示如何通過在形狀中組合數(shù)學(xué)貝塞爾曲線和顏色來創(chuàng)建宇宙飛船。 然后,它將說明如何使用由弧形組成的小圓圈來繪制星星。
此代碼示例包含以下任務(wù)來演示使用Canvas 繪制這些游戲元素的基本原則:
1.向網(wǎng)頁添加 Canvas 元素
2.創(chuàng)建黑色背景
3.在背景上繪制隨機(jī)星星
4.向背景添加宇宙飛船
代碼示例的末尾是討論材料,說明有關(guān)這些任務(wù)的設(shè)計和結(jié)構(gòu)以及工作方式的詳細(xì)信息。
Canvas 代碼示例:

復(fù)制代碼
代碼如下:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
// This function is called on page load.
function canvasSpaceGame() {
// Get the canvas element.
canvas = document.getElementById("myCanvas");
// Make sure you got it.
if (canvas.getContext)
// If you have it, create a canvas user inteface element.
{
// Specify 2d canvas type.
ctx = canvas.getContext("2d");</p> <p>// Paint it black.
ctx.fillStyle = "black";
ctx.rect(0, 0, 300, 300);
ctx.fill();</p> <p>// Paint the starfield.
stars();</p> <p>// Draw space ship.
makeShip();
}
}</p> <p>// Paint a random starfield.</p> <p>
function stars() {</p> <p>// Draw 50 stars.
for (i = 0; i <= 50; i++) {
// Get random positions for stars.
var x = Math.floor(Math.random() * 299)
var y = Math.floor(Math.random() * 299)</p> <p>// Make the stars white
ctx.fillStyle = "white";</p> <p>// Give the ship some room.
if (x < 30 || y < 30) ctx.fillStyle = "black";</p> <p>// Draw an individual star.
ctx.beginPath();
ctx.arc(x, y, 3, 0, Math.PI * 2, true);
ctx.closePath();
ctx.fill();
}
}</p> <p>function makeShip() {</p> <p>// Draw saucer bottom.
ctx.beginPath();
ctx.moveTo(28.4, 16.9);
ctx.bezierCurveTo(28.4, 19.7, 22.9, 22.0, 16.0, 22.0);
ctx.bezierCurveTo(9.1, 22.0, 3.6, 19.7, 3.6, 16.9);
ctx.bezierCurveTo(3.6, 14.1, 9.1, 11.8, 16.0, 11.8);
ctx.bezierCurveTo(22.9, 11.8, 28.4, 14.1, 28.4, 16.9);
ctx.closePath();
ctx.fillStyle = "rgb(222, 103, 0)";
ctx.fill();</p> <p>// Draw saucer top.
ctx.beginPath();
ctx.moveTo(22.3, 12.0);
ctx.bezierCurveTo(22.3, 13.3, 19.4, 14.3, 15.9, 14.3);
ctx.bezierCurveTo(12.4, 14.3, 9.6, 13.3, 9.6, 12.0);
ctx.bezierCurveTo(9.6, 10.8, 12.4, 9.7, 15.9, 9.7);
ctx.bezierCurveTo(19.4, 9.7, 22.3, 10.8, 22.3, 12.0);
ctx.closePath();
ctx.fillStyle = "rgb(51, 190, 0)";
ctx.fill();
}
</script>
</head>
<body onload="canvasSpaceGame()">
<h1>
Canvas Space Game
</h1>
<canvas id="myCanvas" width="300" height="300">
</canvas>
</body>
</html>

Canvas 代碼示例討論

本節(jié)說明本代碼示例的設(shè)計和結(jié)構(gòu)。 它為您講解代碼的不同部分,以及整合它們的方式。 Canvas 示例使用標(biāo)準(zhǔn) HTML5 標(biāo)頭 ,以便瀏覽器可以將它作為 HTML5 規(guī)格的一部分加以區(qū)別。

代碼分成兩個主要部分:
1.主體代碼
2.腳本代碼

主體代碼
在頁面加載時,主體標(biāo)記使用 onload 函數(shù)調(diào)用 canvasSpaceGame 函數(shù)。 Canvas 標(biāo)記是主體的一部分。 指定了 Canvas 初始寬度和高度,還指定了 ID 屬性。 必須使用 ID,才能將 canvas 元素添加到頁面的對象模型中。

腳本代碼
腳本代碼包括三個函數(shù): canvasSpaceGame、stars 和 makeShip。 加載頁面時將調(diào)用 canvasSpaceGame 函數(shù)。 stars 和 makeShip 都是從 canvasSpaceGame 調(diào)用的。

canvasSpaceGame 函數(shù)
加載頁面時將調(diào)用此函數(shù)。 它通過在主體代碼中使用 Canvas 元素 ID 來獲取畫布, 然后獲取畫布的上下文,并準(zhǔn)備好接受繪圖。 將上下文初始化為 2D 畫布后,使用 fillStyle、rect 和 fill 方法將畫布繪制為黑色。

stars 函數(shù)
此函數(shù)是從 canvasSpaceGame 調(diào)用的。 它使用 for loop 在二維平面上生成 50 個潛在的星星位置,然后使用 fillStyle 創(chuàng)建白色。 隨后,會進(jìn)行一項檢查,確認(rèn) x,y 坐標(biāo)是否與左上角過于靠近。 如果星星繪制得與左上角過于靠近,則會將 fillStyle 更改為黑色,使其不會妨礙宇宙飛船。 隨后,使用 arc 方法繪制每個星星并使用相應(yīng)的填充顏色。
makeShip
此函數(shù)是從 canvasSpaceGame 調(diào)用的。 使用一系列的 beginPath、moveTo、bezierCurveTo、closePath、fillStyle 和 fill 方法,繪制一個簡單的宇宙飛船。
飛船是通過繪制兩個橢圓來創(chuàng)建的,一個橢圓在另一個的上面。 它首先在 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)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用html5 canvas創(chuàng)建太空游戲的示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于使用html5 canvas創(chuàng)建太空游戲的示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    最新日韩av在线| 亚洲一区二区三区中文字幕| 亚洲一卡二卡三卡四卡无卡久久 | 国产在线播放一区三区四| 精品国产伦一区二区三区观看体验 | 国产成人在线电影| 亚洲一区中文在线| 亚洲蜜臀av乱码久久精品蜜桃| 久久新电视剧免费观看| 欧美成人欧美edvon| 欧美一区二区三区四区久久| 欧美日韩黄色影视| 欧美日韩久久久久久| 欧洲色大大久久| 在线观看日韩高清av| 欧美自拍丝袜亚洲| 日本高清不卡在线观看| 91久久精品一区二区| 色噜噜狠狠色综合欧洲selulu | 91久久久免费一区二区| 国产大陆精品国产| 国产资源精品在线观看| 极品少妇xxxx精品少妇偷拍| 免费美女久久99| 亚洲成人在线网站| 亚洲bt欧美bt精品| 午夜私人影院久久久久| 亚洲视频在线观看三级| 精品国产一区二区三区久久久蜜月 | 亚洲欧美在线另类| 欧美一区二区美女| 欧洲av在线精品| 99久久婷婷国产综合精品电影 | gogo大胆日本视频一区| 免费人成网站在线观看欧美高清| 尤物av一区二区| 国产精品三级av| 欧美xfplay| 91精品国产综合久久婷婷香蕉| 色综合欧美在线| 成人a级免费电影| 不卡欧美aaaaa| 乱中年女人伦av一区二区| 亚洲一区二区三区四区的| 日韩一区二区精品| 7777精品伊人久久久大香线蕉的 | 国产精品色眯眯| 亚洲精品自拍动漫在线| 最近日韩中文字幕| 婷婷成人激情在线网| 亚洲国产三级在线| 国产真实乱子伦精品视频| 蜜桃av一区二区三区| 成人avav在线| 成人美女视频在线看| 欧美日韩在线播放一区| 欧美日韩黄色一区二区| 欧美精品一区二区三区视频 | a亚洲天堂av| 国产a级毛片一区| 精品一区二区三区蜜桃| 久久激情五月婷婷| 成人国产精品免费观看| 色综合久久综合网97色综合| 成人va在线观看| 色狠狠综合天天综合综合| 色婷婷av一区二区三区gif| 在线精品亚洲一区二区不卡| 欧美绝品在线观看成人午夜影视| 久久99久久久久久久久久久| 欧美精品一区二区久久久| 欧美tk—视频vk| 久久久久国产精品人| 中文字幕第一页久久| 欧美一区二区视频观看视频| 精品国产sm最大网站免费看| 久久精品亚洲乱码伦伦中文| 日本一区二区三区高清不卡 | 国产经典欧美精品| 菠萝蜜视频在线观看一区| 色欧美片视频在线观看在线视频| 欧美酷刑日本凌虐凌虐| 国产欧美日韩麻豆91| 亚洲伊人伊色伊影伊综合网| 免费在线观看一区| www.亚洲色图| 91免费观看视频| 欧美mv和日韩mv国产网站| 久久久久久97三级| 亚洲女人的天堂| 国产高清精品网站| 99久久久免费精品国产一区二区| 在线看日韩精品电影| 正在播放一区二区| 亚洲欧美自拍偷拍| 国产精品一区二区在线观看网站| 色综合天天综合网天天狠天天| 不卡欧美aaaaa| 在线观看亚洲a| 久久综合久色欧美综合狠狠| 亚洲主播在线播放| 不卡的电影网站| 日韩欧美亚洲另类制服综合在线 | 精品国精品国产| 亚洲国产精品久久久久婷婷884| 国内成人免费视频| 欧美男男青年gay1069videost| 国产精品网站导航| 精品一区二区三区久久久| 欧美午夜电影网| 国产精品毛片a∨一区二区三区| 奇米四色…亚洲| 欧美三级午夜理伦三级中视频| 欧美精品aⅴ在线视频| 久久久亚洲高清| 亚洲国产日韩精品| 91麻豆高清视频| 中文字幕一区二区视频| 国产电影一区在线| 欧美精品一区二区三区四区| 日本成人中文字幕| 91精品国产综合久久国产大片| 亚洲欧美日韩久久| 懂色av一区二区夜夜嗨| 亚洲欧美国产高清| 97久久超碰精品国产| 国产日韩精品一区二区三区在线| 91蜜桃在线观看| 亚洲欧美二区三区| 欧美电影免费观看高清完整版在| 亚洲午夜久久久久久久久久久| 日韩一区二区不卡| 久久精品国产精品亚洲综合| 国产精品美女久久久久久2018| 国产精品影音先锋| 亚洲成人资源在线| 欧美一区二区国产| 91免费看片在线观看| 亚洲综合在线电影| 欧美国产欧美综合| 成人影视亚洲图片在线| 亚洲小少妇裸体bbw| 精品视频一区三区九区| 成人精品小蝌蚪| 国产精品久久久久久久岛一牛影视| 成人免费视频视频在线观看免费| 日韩欧美在线综合网| 免费久久99精品国产| 久久五月婷婷丁香社区| 国产成人精品在线看| 中文字幕一区二区三区不卡| 日本精品视频一区二区三区| 亚洲高清免费在线| 欧美老女人在线| 国产美女精品一区二区三区| 亚洲国产精品av| 在线精品视频免费观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久综合久久99| 精品无人码麻豆乱码1区2区 | 视频一区在线视频| 久久在线免费观看| 国产一区二区三区在线观看免费视频| 亚洲18女电影在线观看| 久久久影院官网| 亚洲成人久久影院| 久久欧美中文字幕| 色婷婷综合久久久中文一区二区 | 精品欧美一区二区在线观看| 不卡免费追剧大全电视剧网站| 亚洲丶国产丶欧美一区二区三区| 日韩欧美精品三级| 99久久综合精品| 日韩高清在线一区| 亚洲欧洲国产日韩| 欧美电影免费观看高清完整版| 韩日av一区二区| 亚洲欧洲成人精品av97| 在线不卡中文字幕播放| 白白色亚洲国产精品| 久久国产欧美日韩精品| 亚洲精品高清视频在线观看| 欧美xxxxxxxx| 欧美人妖巨大在线| 成人午夜电影久久影院| 亚洲视频一区二区在线| 国产婷婷色一区二区三区在线| 欧美日韩亚洲高清一区二区| 成人av午夜影院| 久久66热re国产| 亚洲成av人片一区二区梦乃| **性色生活片久久毛片| 久久久电影一区二区三区| 欧美日韩不卡在线| 一区二区在线观看视频| 国产精品日日摸夜夜摸av| 精品91自产拍在线观看一区| 天堂精品中文字幕在线| 亚洲综合丝袜美腿| 亚洲已满18点击进入久久|