① HTML5游戲開發工具常用的有哪幾款
1、Canvas Debugger
在最新版本的firefox中,瀏覽器中添加了Canvas調試。 Canvas Debugger允許你跟蹤所有的canvas上下文調用, 像繪制元素和使用特定的調色器一樣,它會根據具體的要求調用顏色編碼。它不僅在開發基於WebGL的游戲時有用,它同時也可以用來測試基於Canvas 2D的游戲。
2、Shader Editor
當創建一個基於WebGL的游戲時,如果能在游戲運行時測試和修改著色器程序將是非常酷的一件事。而Shader Editor工具就可以實現這些事情。不需要重新載入界面就可以修改頂點和片段著色器,還可以查看其對輸出結果的影響。
3、Web Audio Editor
Web Audio Editor編輯器通過圖表展示了所有的音頻結點和當前AudioContext的連接,你可以通過它查看每個結點的特定屬性。Web Audio API提供了更多混音的創建,對音頻的操作和處理比HTML5的Audio標簽強大很多。
4、Network Monitor
對於HTML5手機游戲開發者來說,需要花費昂貴的代碼來對游戲進行繁瑣的測試。如果游戲是在手機設備中運行,可以使用Network Monitor直觀地看到所有的網路請求,系統耗時和類型大小等屬性。除此之外,你還可以通過Network Monitor直觀地看到游戲的性能分析。
5、Web IDE
不管是運用什麼語言進行軟體軟體,開發前都必須先確定一個開發環境,手機游戲開發也 是如此,在html5游戲開發中,可以選擇Sublime,Eclipse,Dreamweaver,vi等等,如果對,瀏覽器端的開發環境感興趣,你可 以試一下在Firefox的最新版本中上線的Web IDE。Web IDE不僅提供開發者進行正常的編碼,還可以遠程發布、調試、框架管理等。
② 怎樣用HTML5 Canvas製作一個簡單的游戲
創建畫布
// Create the canvas
var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
canvas.width = 512;
canvas.height = 480;
document.body.appendChild(canvas);
首先我們需要創建一張畫布作為游戲的舞台。這里通過JS代碼而不是直接在HTML里寫一個<canvas>元素目的是要說明代碼創建也是很方便的。有了畫布後就可以獲得它的上下文來進行繪圖了。然後我們還設置了畫布大小,最後將其添加到頁面上。
准備圖片
// 背景圖片
var bgReady = false;
var bgImage = new Image();
bgImage.onload = function () {
bgReady = true;
};
bgImage.src = "images/background.png";
游戲嘛少不了圖片的,所以我們先載入一些圖片先。簡便起見,這里僅創建簡單的圖片對象,而不是專門寫一個類或者Helper來做圖片載入。bgReady這個變數用來標識圖片是否已經載入完成從而可以放心地使用了,因為如果在圖片載入未完成情況下進行繪制是會報錯的。
整個游戲中需要用到的三張圖片:背景,英雄及怪物我們都用上面的方法來處理。
游戲對象
// 游戲對象
var hero = {
speed: 256, // 每秒移動的像素
x: 0,
y: 0
};
var monster = {
x: 0,
y: 0
};
var monstersCaught = 0;
現在定義一些對象將在後面用到。我們的英雄有一個speed屬性用來控制他每秒移動多少像素。怪物游戲過程中不會移動,所以只有坐標屬性就夠了。monstersCaught則用來存儲怪物被捉住的次數。
處理用戶的輸入
// 處理按鍵
var keysDown = {};
addEventListener("keydown", function (e) {
keysDown[e.keyCode] = true;
}, false);
addEventListener("keyup", function (e) {
delete keysDown[e.keyCode];
}, false);
現在開始處理用戶的輸入(對初次接觸游戲開發的前端同學來說,這部分開始可能就需要一些腦力了)。在前端開發中,一般是用戶觸發了點擊事件然後才去執行動畫或發起非同步請求之類的,但這里我們希望游戲的邏輯能夠更加緊湊同時又要及時響應輸入。所以我們就把用戶的輸入先保存下來而不是立即響應。
為此,我們用keysDown這個對象來保存用戶按下的鍵值(keyCode),如果按下的鍵值在這個對象里,那麼我們就做相應處理。
開始一輪游戲
// 當用戶抓住一隻怪物後開始新一輪游戲
var reset = function () {
hero.x = canvas.width / 2;
hero.y = canvas.height / 2;
// 將新的怪物隨機放置到界面上
monster.x = 32 + (Math.random() * (canvas.width - 64));
monster.y = 32 + (Math.random() * (canvas.height - 64));
};
reset方法用於開始新一輪和游戲,在這個方法里我們將英雄放回畫布中心同時將怪物放到一個隨機的地方。
更新對象
// 更新游戲對象的屬性
var update = function (modifier) {
if (38 in keysDown) { // 用戶按的是↑
hero.y -= hero.speed * modifier;
}
if (40 in keysDown) { // 用戶按的是↓
hero.y += hero.speed * modifier;
}
if (37 in keysDown) { // 用戶按的是←
hero.x -= hero.speed * modifier;
}
if (39 in keysDown) { // 用戶按的是→
hero.x += hero.speed * modifier;
}
// 英雄與怪物碰到了么?
if (
hero.x <= (monster.x + 32)
&& monster.x <= (hero.x + 32)
&& hero.y <= (monster.y + 32)
&& monster.y <= (hero.y + 32)
) {
++monstersCaught;
reset();
}
};
這就是游戲中用於更新畫面的update函數,會被規律地重復調用。首先它負責檢查用戶當前按住的是中方向鍵,然後將英雄往相應方向移動。
有點費腦力的或許是這個傳入的modifier 變數。你可以在main 方法里看到它的來源,但這里還是有必要詳細解釋一下。它是基於1開始且隨時間變化的一個因子。例如1秒過去了,它的值就是1,英雄的速度將會乘以1,也就是每秒移動256像素;如果半秒鍾則它的值為0.5,英雄的速度就乘以0.5也就是說這半秒內英雄以正常速度一半的速度移動。理論上說因為這個update 方法被調用的非常快且頻繁,所以modifier的值會很小,但有了這一因子後,不管我們的代碼跑得快慢,都能夠保證英雄的移動速度是恆定的。
現在英雄的移動已經是基於用戶的輸入了,接下來該檢查移動過程中所觸發的事件了,也就是英雄與怪物相遇。這就是本游戲的勝利點,monstersCaught +1然後重新開始新一輪。
渲染物體
// 畫出所有物體
var render = function () {
if (bgReady) {
ctx.drawImage(bgImage, 0, 0);
}
if (heroReady) {
ctx.drawImage(heroImage, hero.x, hero.y);
}
if (monsterReady) {
ctx.drawImage(monsterImage, monster.x, monster.y);
}
// 計分
ctx.fillStyle = "rgb(250, 250, 250)";
ctx.font = "24px Helvetica";
ctx.textAlign = "left";
ctx.textBaseline = "top";
ctx.fillText("Monsterrs caught: " + monstersCaught, 32, 32);
};
之前的工作都是枯燥的,直到你把所有東西畫出來之後。首先當然是把背景圖畫出來。然後如法炮製將英雄和怪物也畫出來。這個過程中的順序是有講究的,因為後畫的物體會覆蓋之前的物體。
這之後我們改變了一下Canvas的繪圖上下文的樣式並調用fillText來繪制文字,也就是記分板那一部分。本游戲沒有其他復雜的動畫效果和打鬥場面,繪制部分大功告成!
主循環函數
// 游戲主函數
var main = function () {
var now = Date.now();
var delta = now - then;
update(delta / 1000);
render();
then = now;
// 立即調用主函數
requestAnimationFrame(main);
};
上面的主函數控制了整個游戲的流程。先是拿到當前的時間用來計算時間差(距離上次主函數被調用時過了多少毫秒)。得到modifier後除以1000(也就是1秒中的毫秒數)再傳入update函數。最後調用render 函數並且將本次的時間保存下來。
關於游戲中循環更新畫面的討論可參見「Onslaught! Arena Case Study」。
關於循環的進一步解釋
// requestAnimationFrame 的瀏覽器兼容性處理
var w = window;
requestAnimationFrame = w.requestAnimationFrame || w.webkitRequestAnimationFrame || w.msRequestAnimationFrame || w.mozRequestAnimationFrame;
如果你不是完全理解上面的代碼也沒關系,我只是覺得拿出來解釋一下總是極好的
為了循環地調用main函數,本游戲之前用的是setInterval。但現今已經有了更好的方法那就是requestAnimationFrame。使用新方法就不得不考慮瀏覽器兼容性。上面的墊片就是出於這樣的考慮,它是Paul Irish 博客原版的一個簡化版本。
啟動游戲!
// 少年,開始游戲吧!
var then = Date.now();
reset();
main();
總算完成了,這是本游戲最後一段代碼了。先是設置一個初始的時間變數then用於首先運行main函數使用。然後調用 reset 函數來開始新一輪游戲(如果你還記得的話,這個函數的作用是將英雄放到畫面中間同時將怪物放到隨機的地方以方便英雄去捉它)。
③ 用瀏覽器可以自己改網頁的代碼,那html5+javascript開發的游戲怎麼保護源代碼修改點代碼不就能作弊了
firebug、chrome的開發人員工具只是一種代碼調試工具,不能真的修改網頁,只是在調試的時候可以做修改,顯示一下效果。頁面刷新後,原來的代碼還是原來的樣子。
調試工具不能把代碼上傳到伺服器裡面,所以不可能有人利用它游戲作弊。
④ 做了一個html5小游戲,怎麼放到網上去
可以放的地方太多了,現在很多平台都可以放,下面推薦下:
1、codePen:各種小項專目的屬分享
2、GitHub
page:搭建個人博客放自己的項目上面
3、各種雲伺服器(騰訊雲,學生1元;阿里雲學生9.9):雲伺服器方便項目採用資料庫
4、還有很多。。。
不懂再問。
⑤ 求 製作一款HTML5小游戲的詳細步驟
這個沒有什麼詳細步驟 必須根據你要開發的游戲需求 根據需求編寫邏輯代碼
⑥ html5游戲開發工具常用的有哪幾款
為大家推薦12款經常會用到的html5開發工具。
1、Adobe Dreamweaver CS6
Dreamweaver CS6是世界頂級軟體廠商Adobe推出的一套擁有可視化編輯界面,用於製作並編輯網站和移動應用程序的網頁設計軟體。由於Dreamweaver支持代碼、拆分、設計、實時視圖等多種方式來創作、編寫和修改網頁,對於初級人員,你可以無需編寫任何代碼就能快速創建Web頁面。其成熟的代碼編輯工具更適用於Web開發高級人員的創作!
2、Adobe Edge
Adobe Edge是一個用HTML5、CSS、Java開發動態互動內容的設計工具。它的一個重要功能是web工具包界面,用於方便確保在不同瀏覽器中架構的一致性,此外,Adobe Edge還將整合TypeKit這樣的字體服務。通過Edge設計的內容可以兼容iOS和Android設備,也可以運行在火狐、Chrome、Safari和IE9等主流瀏覽器上。
3、DevExtreme
DevExtreme Complete Subion是性能最優的HTML5,CSS和Java移動開發框架,可以直接在Visual Studio集成開發環境,構建iOS,Android,Tizen和Windows Phone 8應用程序。DevExtreme包含 PhoneJS 和 ChartJS 兩個原生UI組件,並且提供源代碼。目前,DevExtreme支持VS2010/2012/2013集成開發環境,兼容Android 4+、iOS5+、Windows 8、Window Phone 8、Tizen五大移動平台,是Visual Studio開發人員開發跨平台移動產品的首選工具。
4、JetBrains WebStorm
WebStorm 是jetbrains公司旗下一款JS開發工具。被廣大中國JS開發者譽為「Web前端開發神器」、「最強大的HTML5編輯器」、「最智能的JavaS IDE」等。與IntelliJ IDEA同源,繼承了IntelliJ IDEA強大的JS部分的功能。
5、Sencha Architect
在開發移動和桌面應用的工具中,Sencha的定位是HTML5可視化應用開發。開發團隊可以在一個單一集成的環境中完成應用的設計、開發和部署。開發者還可以開發Sencha Touch2和Ext JS4 Java應用,並實時預覽。
6、Initializr
Initializr 是製作 HTML5 網站最好的入門輔助開發工具,你可以使用提供的特色模板快速生成網站,也可以自定義,Initializr 會為你生成代碼簡潔的可定製的網頁模板。
7、HTML5demos
想知道你的瀏覽器是否支持 HTML5 Canvas 嗎?想知道 Safari 是否可以運行簡單的 HTML5 聊天客戶端嗎?HTML5demos 會告訴你每一個HTML5特性在哪些瀏覽器中支持。
8、HTML5 Tracker
想了解 HTML5的最新動向嗎? 使用 HTML5 Tracker 吧,它可以跟蹤 HTML5 最新修訂信息。
9、HTML5 visual cheat sheet
想要快速超找一個標簽或者屬性嗎?看看這個非常酷的速查手冊吧,每個Web開發人員的必備。
10、Switch To HTML5
Switch To HTML5 是一個基礎而實用的模板生成工具。如果你開始一個新項目,可以到這里獲取免費的 HTML5 網站模板。
11、HTML5 Test
你瀏覽器准備好迎接 HTML5 革命了嗎?HTML5 Test 將告訴你。這個網站會為你當前使用的瀏覽器生成一份對video、audio、canvas等等特性的支持情況的完整報告。
12、Lime JS
LimeJS 是一個 HTML5 游戲開發框架,用於快速構建運行於觸屏設備和桌面瀏覽器的游戲。非常棒的HTML5開發工具,一定要用用試試。
⑦ 谷歌瀏覽器 怎麼修改Html5游戲
html5游戲是用<canvas>製作的,游戲里所有的內容都是通過js控制的,而瀏覽器不能直接修改版js文件,所以只用權瀏覽器沒有辦法修改html5游戲。
你可以nginx做代理伺服器,把js下載到本地,通過nginx將js資源指向本地,這樣就能夠在本地修改游戲了。
⑧ HTML5游戲:如果在瀏覽器裡面玩游戲,有沒有什麼瀏覽器腳本可以來製作,游戲腳本
HTML5幫到你
用DW8
⑨ 製作一個html5游戲網站,游戲資源再那弄
有這方面技術挺好
給我留個聯系方式吧
⑩ html5的網頁小游戲,如何改成能在手機瀏覽器運行
你看一下
網頁手機wap2.0網頁的head里加入下面這條元標簽,在iPhone的瀏覽器中頁面將以原始大小顯示,並不回允許縮放。答
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
width - viewport的寬度 height - viewport的高度
initial-scale - 初始的縮放比例
minimum-scale - 允許用戶縮放到的最小比例
maximum-scale - 允許用戶縮放到的最大比例
user-scalable - 用戶是否可以手動縮放