久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

通過HTML5和WebGL來制作2D游戲

Istrolid是一款采用諸多web新技術(shù)的HTML5游戲。游戲的作者treeform分別使用webGL、WebSocket、AudioContext和作者自制的響應(yīng)式HTML框架來渲染圖形、創(chuàng)建網(wǎng)絡(luò)連接、播放音頻和設(shè)計(jì)UI。 ... ... ... .

  Istrolid是一款采用諸多web新技術(shù)的HTML5游戲。游戲的作者treeform分別使用webGL、WebSocket、AudioContext和作者自制的響應(yīng)式HTML框架來渲染圖形、創(chuàng)建網(wǎng)絡(luò)連接、播放音頻和設(shè)計(jì)UI。另外,他還使用了Electron來將游戲打包成Windows和Mac的桌面應(yīng)用程序。筆者這次給大家分享一下 Istrolid作者的游戲開發(fā)心得。


  2D WebGL

  在使用openGL和WebGL引擎時(shí),開發(fā)者通常會(huì)創(chuàng)建多個(gè)網(wǎng)格和紋理對(duì)象。但是Istrolid的 作者卻有著自己獨(dú)特的建構(gòu)方法。他 通過一個(gè)網(wǎng)格和紋理對(duì)象 來繪畫所有的游戲內(nèi)容。游戲中的飛船有非常簡(jiǎn)單的多邊形構(gòu)成,有的甚至是由若干個(gè)三角形構(gòu)成的。因此作者認(rèn)為沒有必為每一個(gè)要繪制的物體都新建一個(gè)網(wǎng)格對(duì)象。取而代之的是創(chuàng)建一個(gè)動(dòng)態(tài)的網(wǎng)格并在每一幀畫面中通過代碼來調(diào)整這個(gè)網(wǎng)格。這樣會(huì)大大加快繪制的速度。這種方法和通常被開發(fā)者們棄用的openGL的immediate模式比較類似。同時(shí),作者不推薦使用 3D ModelView的矩陣。在編寫 Istrolid時(shí), 他僅僅將一個(gè)視點(diǎn)的矩形傳遞給了著色器。因此這款游戲是完全基于2D引擎的。


  

  圖1 游戲中的飛船均由簡(jiǎn)單的多邊形構(gòu)成

  紋理對(duì)象也很簡(jiǎn)單,而且和網(wǎng)格對(duì)象一樣是動(dòng)態(tài)的。在一個(gè)區(qū)域或者地形上繪制圖片時(shí),游戲程序會(huì)加載這個(gè)紋理對(duì)象并將它放到一個(gè)實(shí)時(shí)打包的紋理地圖集中。之后程序會(huì)根據(jù)新的UI坐標(biāo)系來創(chuàng)建網(wǎng)格對(duì)象。


  

  圖2 2048px*2048px的地圖集

  作者對(duì)著色器的操作也很簡(jiǎn)單。他將所有的顏色都轉(zhuǎn)換到了HSV顏色空間中以便于進(jìn)行顏色的調(diào)整。


  

  圖3 HSV顏色空間


  Coffee Script

  JavaScript快得難以置信。作者原本利用Panda3d和Python來編寫卻發(fā)現(xiàn)Python并不能滿足他對(duì)速度的需求。他認(rèn)為不斷發(fā)展壯大的JavaScript在滿足他對(duì)速度的追求的同時(shí)還能實(shí)現(xiàn)更多的功能。他使用CoffeeScript來編寫整個(gè)游戲并非常喜愛它的縮進(jìn)排版和箭頭標(biāo)識(shí)符。特別令他印象深刻的一點(diǎn)是箭頭標(biāo)識(shí)符可以非常快速的創(chuàng)建內(nèi)聯(lián)函數(shù)。

  他利用自己三年前編寫的基于HTML的編輯器在服務(wù)器上編寫代碼。這樣的好處是他可以通過訪問編輯器的URL來在任意一臺(tái)電腦上開始他的開發(fā)工作。他用過Windows、Mac和ChromeOS并非常支持ChromeOS的云理念。


  

  圖4 作者自制的基于網(wǎng)絡(luò)的編輯器


  WebSocket和服務(wù)器

  作者利用CoffeeScript來編寫服務(wù)器端程序并用Node.js來運(yùn)行。他希望這款游戲能夠同時(shí)支持單人模式和多人模式。當(dāng)玩家進(jìn)行單人模式游戲時(shí)會(huì)開啟一個(gè)本地服務(wù)器。程序通過一個(gè)偽WebSocket來連接到本地服務(wù)器。這樣的好處是可以在一個(gè)真實(shí)的網(wǎng)絡(luò)環(huán)境中來測(cè)試代碼,從而簡(jiǎn)化調(diào)試的過程。所有的調(diào)試和單步調(diào)試都在一個(gè)進(jìn)程中完成。另外,他還可以在這個(gè)偽WebSocket中設(shè)置網(wǎng)絡(luò)延時(shí)和抖動(dòng)來模擬復(fù)雜的網(wǎng)絡(luò)環(huán)境。

  在開發(fā)即時(shí)戰(zhàn)略類游戲時(shí),開發(fā)者通常會(huì)選擇鎖步(Lock Step)方法。但是 Istrolid得作者并沒有這么做。他認(rèn)為鎖步已經(jīng)過時(shí),不易于編寫(尤其是用JavaScript編寫時(shí))。而且在這個(gè)個(gè)人電腦普遍擁有高帶寬的時(shí)代,鎖步的優(yōu)勢(shì)已不再明顯。他采用delta編碼方式,并僅將變動(dòng)的數(shù)據(jù)從服務(wù)器傳給每個(gè)玩家的服務(wù)器上。


  

  圖5 Istrolid的網(wǎng)絡(luò)結(jié)構(gòu)


  AudioContext

  瀏覽器的音頻播放能力已經(jīng)改善許多。作者通過過程生成技術(shù)來創(chuàng)建背景音樂,并創(chuàng)建一個(gè)隨著游戲的進(jìn)行動(dòng)態(tài)響應(yīng)的鼓。當(dāng)一個(gè)單位被集中或者爆炸時(shí)他會(huì)提高這個(gè)鼓的音量。他將每一個(gè)武器開火時(shí)的聲音的音量設(shè)定成一個(gè)隨機(jī)數(shù)以保證每一個(gè)武器的聲音都有差別,盡管這個(gè)差別很細(xì)微。除非要開發(fā)一個(gè)音樂游戲否則作者不推薦在這方面花太多時(shí)間。


  HTML UI

  如果游戲中的UI非常多的話,那么完全靠自己用代碼來實(shí)現(xiàn)就會(huì)非常困難。這時(shí)就需要一些些復(fù)雜的UI框架來進(jìn)行輔助。對(duì)于HTML5游戲來說,無需使用復(fù)雜的工具包即可實(shí)現(xiàn)復(fù)雜的UI效果。作者還利用HTML5的特性自己設(shè)計(jì)了一個(gè)響應(yīng)式框架從而簡(jiǎn)化UI的編寫過程。


  Electorn “Shell”

  如今將HTML5游戲編譯成適合于Windows、Mac或Linux的桌面應(yīng)用程序非常容易。Istrolid的作者非常推薦那些因?yàn)椴寮卣埂g覽器過時(shí)或者驅(qū)動(dòng)故障等問題頭疼的開發(fā)者嘗試一下Electron。同時(shí)這也為把你的游戲發(fā)布到類似Steam這樣需要提供可下載文件的游戲平臺(tái)創(chuàng)造了可能。


  

  圖6 Electron


來源:http://www.gbtags.com/gb/share/10213.htm

【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

由于實(shí)際運(yùn)行環(huán)境是在瀏覽器中,因此性能還取決于JavaScript解釋器的效率,指定的FPS幀速在低性能解釋器中可能不會(huì)達(dá)到,所以這部分不是開發(fā)者能夠決定的,開發(fā)者能作的是盡可能通
本文將使用HTML5提供的VideoAPI做一個(gè)自定義的視頻播放器,需要用到HTML5提供的video標(biāo)簽、以及HTML5提供的對(duì)JavascriptAPI的擴(kuò)展。,HTML5中國(guó),中國(guó)最大的HTML5中文門戶。
隨著 Hybrid 應(yīng)用的豐富,HTML5 工程師們已經(jīng)不滿足于把桌面端體驗(yàn)簡(jiǎn)單移植到移動(dòng)端,他們覬覦移動(dòng)原生應(yīng)用人性化的操作體驗(yàn),特別是原生應(yīng)用與生俱來的豐富的手勢(shì)系統(tǒng)。HTML5 沒有提
你想要在自己網(wǎng)站上分享一個(gè)產(chǎn)品,或者是一個(gè)作品集,又或者僅僅只是一個(gè)靈感。在你發(fā)布到網(wǎng)上之前,你想讓它看起來有吸引力,專業(yè),或者至少得看起來像那么回事。那么你接下
這篇文章通過HTML5規(guī)范給大家介紹了i、em、b與strong元素的區(qū)別,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
H5廣告,包括H5廣告的設(shè)計(jì)流程,究竟有什么講究,和階段。為了能幫助更多的人了解H5廣告,我專門做了一個(gè)講義。同時(shí),也讓我意外的收到了非常好反饋和認(rèn)!這是對(duì)我的極大鼓勵(lì)!我的
主站蜘蛛池模板: 人人干免费 | 亚洲成人精品一区二区 | av大片在线 | 亚洲狠狠| 日本不卡免费新一二三区 | 美日韩中文字幕 | 久久九九99 | 免费观看色 | 美女在线观看国产 | 久久毛片 | 欧美一区二区免费 | 久久久久久亚洲 | 日韩精品久久一区 | 精品欧美一区二区精品久久久 | 一区二区三区免费在线观看 | 天天天久久久 | 黄色播放 | 日韩一区二区三区视频在线观看 | 久久久久久久久久久蜜桃 | 国产精品国产三级国产aⅴ中文 | 四虎影音| 最新国产在线 | 在线国产中文字幕 | 农村黄性色生活片 | 中文字幕av一区二区三区 | 在线视频 亚洲 | 精品美女久久久 | 一区二区中文 | 亚洲网站在线观看 | 日韩精品在线观看免费 | 久久最新网址 | 久久aⅴ乱码一区二区三区 91综合网 | 一区二区成人 | 国产精品久久久久一区二区 | 日韩不卡一区二区 | 超级乱淫av片免费播放 | 欧美精品中文字幕久久二区 | 在线看av网址 | 久久亚洲一区二区三区四区 | 久久这里只有精品首页 | 久草精品在线 |