<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        詳細介紹HTML5游戲開發5條建議及開發工具分享

        來源:懂視網 責編:小采 時間:2020-11-27 15:11:59
        文檔

        詳細介紹HTML5游戲開發5條建議及開發工具分享

        詳細介紹HTML5游戲開發5條建議及開發工具分享:當你開發基于HTML5的游戲時,你有很多選擇。使用什么樣的編輯器?是否用到Canvas 2d、WebGL?采用什么樣的呈現框架和游戲引擎?這些選擇大部分由開發者的個人經驗和游戲將要發布的平臺決定。幸運的是,有關HTML5游戲開發的指南現在已經有很多了。而這篇文章則
        推薦度:
        導讀詳細介紹HTML5游戲開發5條建議及開發工具分享:當你開發基于HTML5的游戲時,你有很多選擇。使用什么樣的編輯器?是否用到Canvas 2d、WebGL?采用什么樣的呈現框架和游戲引擎?這些選擇大部分由開發者的個人經驗和游戲將要發布的平臺決定。幸運的是,有關HTML5游戲開發的指南現在已經有很多了。而這篇文章則
        當你開發基于HTML5的游戲時,你有很多選擇。使用什么樣的編輯器?是否用到Canvas 2d、WebGL?采用什么樣的呈現框架和游戲引擎?這些選擇大部分由開發者的個人經驗和游戲將要發布的平臺決定。

        幸運的是,有關HTML5游戲開發的指南現在已經有很多了。而這篇文章則是要告訴開發者在開發HTML5游戲以前應該具備的一些全局概念。你能從這篇 文章中學到什么?這里會介紹HTML5游戲開發的一些框架,你將知道如何使你設計的游戲能夠在更多的平臺上運行,了解如何管理在線游戲的狀態,如何處理性 能問題。

        話不多說,現在就開始介紹HTML5游戲開發的幾條實用建議。

        建議1:使用框架

        如果只是用HTML5編寫一些小程序其實非常簡單,但如果想往你的游戲中加入更豐富的功能,那么就有許多其他的事情需要處理了。

        比如,如果你的游戲中有大量的圖片、音效或是其他的資源,那么瀏覽器需要從你的游戲服務器上下載這些資源,這往往需要花費很多的時間。如果你在 編寫程序的時候沒有考慮這些問題,那么你也許會對最后的結果感到意外。由于圖形和聲音文件都是異步下載的,也許在你的資源下載好以前你的 JavaScript腳步已經開始運行了。這就是所謂的“爆音”現象(圖像顯示異常),而聲音也可能在錯誤的時間播放。一個好的解決方法就是創建一個預先 下載機制,保證所有的資源下載完以后才允許腳本執行。

        另一個你可能碰到的問題就是你的游戲在不同的機器甚至是瀏覽器中運行的速度有所不同。雖然這也許在你的控制范圍以外,但你還是可以盡量使得你的動畫或是動作的速度不依賴于游戲運行框架的速度。

        其實,現在有許多的游戲模板代碼,里面實現了大多數游戲需要的功能。這樣,開發者不需要從頭到尾編寫一個完整的游戲程序。現在有許多框架可以幫助開發者設計游戲,開發者只用關注具體的游戲邏輯,而不用擔心如何使游戲順暢運行這些細節問題。

        使用框架時唯一需要注意的一點就是如何從眾多的框架中挑選一個合適的框架。像ImpactJS這樣的框架功能非常強大,幾乎可以在各個 方面為開發者提供幫助;而像EaselJS的框架則主要是處理圖形方面的工作。最后,還是需要由開發者決定使用哪種框架更加合適。這看起來似乎很簡單,但 在JavaScript的世界里面,選擇一個框架時也意味著你選擇了一種特定的編程風格。

        functionsaveState(state) { 
         window.localStorage.setItem("gameState", JSON.stringify(state)); 
        } 
        functionrestoreState() { 
         varstate =window.localStorage.getItem("gameState"); 
         if(state) { 
         returnJSON.parse(state); 
         }else{ 
         retrun null; 
         } 
        }

        Monster=ig.Entity.extend({eyes : 42});});ImpactJS就是一個很好的例子,它不僅提供了圖像顯示和音效處理的方法,還在實現中插入了自己的對象和模型。

        HTML5游戲開發經驗及開發工具分享

        Ascended Arcade三個月內發開了三款游戲,全部使用的是ImpactJS的框架

        雖然現在已經有很多HTML5游戲使用了一些框架,但是還是有很多開發者不嫌麻煩地選擇不依賴任何框架完全自己開發。如果你想在合理的時間內完 成任務,使用框架當然是最有效的方法。Ascended Arcade就是一個很好的例子,在短短三個月的時間里,他們就開發出了三個游戲,全部使用了ImpactJS框架。

        建議2:將小屏幕和觸屏設備考慮在內

        HTML5最大的賣點之一就是它既能在桌面PC上使用,也能在筆記本電腦、平板設備甚至是智能手機上運行。(這里有IE9在Windows Phone 7 Mango上的運行效果演示)。

        HTML5與生俱來就具備了跨平臺的特性,通常為開發者節省了很多工作。然而,有些事情是需要開發者考慮的…

        HTML5游戲開發經驗及開發工具分享

        SpyChase在Windows Phone 7 Mango上的運行效果

        首先也是最重要的一點,不同的設備屏幕的尺寸也有所不同,屏幕的寬高比以及分辨率可能有很大的差別。如果想讓你的HTML5在移動設備上擁有良 好的效果,確保它支持多種分辨率并且不超過WVGA的800×480框架大小。此外,由于大多數的移動設備無法在一個屏幕上顯示所有的頁面內容,他們常常 采用精確的縮放和平移技術,而這些技術通常并不適用于游戲的編寫。可以在編程的時候使用viewport meta標志禁用這些功能。下面的代碼片段可以用來使你的游戲視圖根據屏幕的實際水平寬度自動調節。移動瀏覽器上的縮放功能常常與觸控游戲控制功能產生沖 突,可以將“user-scaleable”參數設置為“no”,從而禁用瀏覽器的縮放功能。

        現在你已經能夠將你的游戲視圖很好地呈現在小屏幕設備上了,接下來就該考慮如何處理用戶輸入的問題了。大多數觸屏設備都有一個虛擬鍵盤,但是在 玩游戲的時候顯示一個虛擬鍵盤實在太浪費空間了。你應該開發一個有限的虛擬鍵盤,只提供游戲中使用到的按鍵(比如箭頭)。當然,最好是盡可能在游戲中不需 要使用額外的元素。Spy Chase在這方面做得很好,用戶只用一個手指就能控制游戲中的汽車了。

        建議3:自動保存用戶的記錄

        使用 site pinning,web瀏覽器試圖讓Web Apps可以像桌面apps一樣工作。但是,讓網站像Apps一樣運行的想法還比較新鮮,同樣的,讓Web頁面保存客戶端的狀態也尚未成熟。用戶在關閉 Microsoft Word的文檔時可能會思考一下內容是否已經保存,而在關閉Web頁面時往往不會這么仔細了。通常這并不會帶來什么問題——大多數的Web頁面是沒有狀態 的,或者是將用戶的記錄保存在了服務器上。

        但如果是處理瀏覽器游戲,情況就完全不同了。通常在客戶端執行的是JavaScript代碼,HTML5游戲通常將游戲的狀態緩存在內存中(RAM)。一旦關閉瀏覽器窗口,用戶辛辛苦苦贏得的高分就永遠地丟失了。

        你可以要求用戶小心一點,不要將正在進行的游戲窗口關閉,但是意外總是會發生的,尤其是當用戶開了多個窗口或是電池沒電的時候。

        長話短說:在編寫HTML5游戲時,最好是經常將游戲玩家的進度狀態保存一下,當用戶重新打開關閉的web頁面時,應該讓用戶可以繼續之前沒有結束的游戲而不是重頭來過。

        你應該將用戶的記錄保存在哪里呢?過去,答案往往是服務器端的數據庫或是客戶端的cookie。但是這兩個都不是最佳的選擇。如果是在服務器 端,則會產生額外的HTTP請求開銷。如果是cookie的話,則可以保存記錄的空間非常有限,并且cookie的壽命取決于瀏覽器的配置。

        一個更有效的方法是使用HTML5 DOM storage。DOM Storage提供了一個key-value存儲(或是JavaScript定義的對象)的接口,可以為每個網站保存幾兆的數據。使用起來非常方便,但是 在HTML5游戲中,你可能想要記錄一些更加復雜的數據結構——這些DOM storage本身可能并不支持。幸運的是,現在的JavaScript提供了一套機制幫助開發者將一組對象壓縮成一些緊湊的符號,這就是JSON機制。 使用這套機制,DOM storage可以保存任何格式的信息。下面的兩個函數展示了如何使用HTML5 DOM storage保存游戲狀態以及ECMAScript5中的JSON功能:

        functionsaveState(state) { 
         window.localStorage.setItem("gameState", JSON.stringify(state)); 
        } 
        functionrestoreState() { 
         varstate =window.localStorage.getItem("gameState"); 
         if(state) { 
         returnJSON.parse(state); 
         }else{ 
         retrun null; 
         } 
        }

        建議4:使用profiler

        游戲開發中最大的挑戰是在加入許多功能以后,如何保證游戲仍然具有高的幀顯示頻率。

        好的消息是近幾年來,瀏覽器的速度越來越快了,基于HTML5的游戲已經可以達到每秒60幀了。

        這是非常了不起的。對IE9來說,這意味著開發了一個全新的JavaScript引擎,能夠利用多CPU內核以及基于Direct2D的硬件渲染管道。換言之,如果你配備了高配置的游戲平臺,IE9就能充分地利用這些硬件平臺。

        HTML5游戲開發經驗及開發工具分享

        IE9整合了JavaScript分析器,能夠發現性能瓶頸

        對于簡單的游戲,這意味著你不必擔心它的性能問題。但由于HTML5可以運行在任何平臺上,這意味著你發開的HTML5游戲應該能夠運行在任何 一個設備或是瀏覽器上,其中有些設備或瀏覽器的處理能力可能并沒有你希望的那么快。即使你的應用只針對高性能的PC,游戲的性能也是一個不得不考慮的問 題。

        如果你要求你的游戲達到每秒60幀,這意味著每一幀的渲染時間不能超過16毫秒。也就是說,在你一眨眼的時間里面,你需要完成至少6幀的渲染工作。現在聽起來可能有點難以想象…但是有些非凡的游戲確實能夠做到。

        幸運的是,這里有些工具可能能夠幫助你。在IE9(或是IE10)上,通過按下F12按鍵可以打開開發工具面板。選擇“Profile”選項然后選中“Start profiling”。

        現在在你覺得性能需要提升的地方停留30秒,profiler將收集相關數據,然后選擇“stop profiling”。你將看到你的游戲中的每個功能的累積執行時間。通常,你會發現某些功能占用了大部分的時間。這樣你就能有針對性地優化那些特別耗時的功能了。

        不要過分相信自己的直覺——有些代碼可能看起來效率很低,但在某些JavaScript引擎上執行起來速度卻很快。最好的辦法就是時常地反復分析程序,對于修改過的代碼,需要反復進行測試確保你的修改確實能夠提升程序的性能。

        HTML5游戲開發經驗及開發工具分享

        游戲變得越來越社會化:Warimals是基于HTML5的游戲,用戶可以與Facebook上的好友一起參與游戲

        建議5:要有創造性!

        能夠開發出在瀏覽器中運行的游戲是一件很棒的事情,而更酷的是可以使用HTML5在瀏覽器上開發游戲應用!從技術的角度看,HTML5是非常棒的,而瀏覽器也是非常理想的游戲平臺。

        想想看…各種不同的設備上都有瀏覽器,它們通常是時時在線的,它是人們接收郵件、聊天和社交網絡的工具。瀏覽器游戲的開發者,可以利用自己開發的游戲將來自世界各地的人們聯系在一起。

        作為一個HTML5游戲開發者,你必須了解很多很酷的開發工具,在Mozilla社區中我們已經介紹了很多為Firefox開發者提供的開發工具,包 括JavaScript Debugger, Style Editor, Page Inspector, Scratchpad, Profiler, Network Monitorand Web Console.

        下面繼續介紹一些HTML游戲開發的工具。

        Canvas Debugger

        在最新版本的firefox中,我們在瀏覽器中添加了Canvas調試。Canvas Debugger允許你跟蹤所有的canvas上下文調用, 像繪制元素和使用特定的調色器一樣,它會根據具體的要求調用顏色編碼。它不僅在開發基于WebGL的游戲時有用,它同時也可以用來測試基于Canvas 2D的游戲。 在下面的游戲中,你可以看到動畫被分解成很多個靜態圖,你可以點擊任意一行直接查看那一部分的響應。

        HTML5游戲開發經驗及開發工具分享

        Shader Editor

        當你創建一個基于WebGL的游戲時,如果能在游戲運行時測試和修改著色器程序將是非常酷的一件事。使用Shader Editor就可以做到這么酷的事情。你不需要重新加載界面就可以修改頂點和片段著色器,還可以查看其對輸出結果的影響。

        Web Audio Editor

        在Firefox Aurora(32)版本中有一個Web Audio Editor,這個編輯器通過圖表展示了所有的音頻結點和當前AudioContext的連接。你可以通過它查看每個結點的特定屬性。Web Audio API提供了更多混音的創建,對音頻的操作和處理比HTML5的Audio標簽強大很多。

        Network Monitor

        對于HTML5游戲開發者來說,需要花費昂貴的代碼來對游戲進行繁瑣的測試。如果游戲是在手機設備中運行,可以使用Network Monitor直觀地看到所有的網絡請求,系統耗時和類型大小等屬性。

        HTML5游戲開發經驗及開發工具分享

        除此之外,你還可以通過Network Monitor直觀地看到游戲的性能分析。

        HTML5游戲開發經驗及開發工具分享

        Web IDE

        開發游戲之前你必須先選擇一個開發環境,同樣,你有很多種選擇(Sublime,Eclipse,Dreamweaver,vi等等),重要的是你肯 定已經有一款常用的開發環境了。如果你對瀏覽器端的開發環境感興趣,你可以試一下Web IDE,它已經在Firefox的最新版本中上線了。

        HTML5游戲開發經驗及開發工具分享

        Web IDE不僅提供開發者進行正常的編碼,還可以遠程發布、調試、框架管理等。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        詳細介紹HTML5游戲開發5條建議及開發工具分享

        詳細介紹HTML5游戲開發5條建議及開發工具分享:當你開發基于HTML5的游戲時,你有很多選擇。使用什么樣的編輯器?是否用到Canvas 2d、WebGL?采用什么樣的呈現框架和游戲引擎?這些選擇大部分由開發者的個人經驗和游戲將要發布的平臺決定。幸運的是,有關HTML5游戲開發的指南現在已經有很多了。而這篇文章則
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 免费看黄福利app导航看一下黄色录像| 亚洲国产精品成人久久久| 亚洲欧美综合精品成人导航| 亚洲视频免费在线看| 久久精品国产亚洲AV麻豆~| 国产男女爽爽爽免费视频| 亚洲爽爽一区二区三区| 亚欧洲精品在线视频免费观看| 亚洲国产精品第一区二区三区| 青娱乐在线视频免费观看| 亚洲国产成人精品女人久久久 | 亚洲av无码无线在线观看| 国内免费高清在线观看| 国产亚洲福利在线视频| 尤物永久免费AV无码网站| 亚洲Av无码国产一区二区| 亚洲av区一区二区三| 国产日韩AV免费无码一区二区三区 | 免费一级毛片清高播放| caoporm超免费公开视频| 久久亚洲AV无码西西人体| 久久99免费视频| 日本亚洲色大成网站www久久| 国产精品公开免费视频| 人人公开免费超级碰碰碰视频| 亚洲色成人WWW永久网站| 欧洲人免费视频网站在线| 亚洲乱码一二三四区国产| 在线观着免费观看国产黄| 黄色视屏在线免费播放| 亚洲国产成人精品不卡青青草原| 成人免费黄色网址| 国产精品亚洲综合网站| 亚洲无线码在线一区观看| 亚洲精品免费网站| 美女视频黄频a免费| 亚洲AV日韩AV高潮无码专区| 无码永久免费AV网站| 国产99久久久国产精免费| 伊人久久综在合线亚洲2019| 日韩人妻无码免费视频一区二区三区|