>本文是Microsoft的Web開發系列的一部分。感謝您支持使SitietPoint成為可能的合作夥伴。 本文討論:
基本遊戲發展哲學
>代碼下載(.zip)
快速開發:利用HTML,JavaScript和CSS中的現有Web開發技能來創建幾乎任何帶有瀏覽器的設備,使用Visual Studio和ASP.NET。
> Visual Studio作為工具:利用視覺工作室進行快速遊戲開發和跨不同設備進行測試,確保兼容性和性能。
這個應用程序將不需要服務器代碼,因此我首先在Visual Studio中創建一個新的,空的網頁項目。我將通過選擇文件後選擇“ Visual C#”選項來使用空網站的空C#模板。新| ASP.NET空網站。
索引HTML文件僅需要三個資源:jQuery,主樣式表和主JavaScript文件。我將一個空的CSS文件添加到名為style.css和一個空的JavaScript文件的項目中,稱為ping.js,以避免加載頁面時錯誤:
><span><span><!DOCTYPE html></span> </span><span><span><span><html</span>></span> </span><span><span><span><head</span>></span> </span> <span><span><span><script</span> src<span>="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.1.min.js"</span>></span><span><span></script</span>></span> </span> <span><span><span><script</span> src<span>="ping.js"</span>></span><span><span></script</span>></span> </span> <span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="style.css"</span>></span><span><span></script</span>></span> </span><span><span><span></head</span>></span> </span><span><span><span><body</span>></span> </span><span><span><span></body</span>></span> </span><span><span><span></html</span>></span> </span>
也不要忘記在瀏覽器和設備之間對此應用進行測試(或任何其他)。雖然我編寫的代碼與Chrome,Firefox和Microsoft Edge等現代瀏覽器可互操作,但這始終是雙重檢查的最佳實踐。現在,您可以使用免費的虛擬機和其他工具(例如http://www.browserstack.com。
基本設計>
>
<span><span><span><div</span> id<span>="arena"</span>></span> </span> <span><span><span><div</span> id<span>="score"</span>></span> </span> <span><span><span><h1</span>></span> </span> <span><span><span><span</span> id<span>="playerScore"</span>></span>0<span><span></span</span>></span> </span> <span><span><span><span</span> id<span>="opponentScore"</span>></span>0<span><span></span</span>></span> </span> <span><span><span></h1</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="player"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="opponent"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="ball"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="controls-left"</span>></span> </span> <span><span><span><div</span> id<span>="up"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="down"</span>></span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="controls-right"</span>></span> </span> <span><span><span><div</span> id<span>="left"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="right"</span>></span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span><span><span><span></div</span>></span> </span>>使用樣式
>第二,我需要將競技場填充整個屏幕,並應用了競技場背景圖像(請參見下圖):
<span>body { </span> <span>margin: 0px; </span> <span>height: 100%; </span><span>} </span>
<span><span>#arena</span> { </span> <span>background-image: <span>url(arena.png)</span>; </span> <span>background-size: 100% 100%; </span> <span>margin: 0px; </span> <span>width: 100%; </span> <span>height: 100%; </span> <span>overflow: hidden; </span><span>} </span>接下來,我將記分牌定位。我希望這在其他元素上出現頂部和中心。命令位置:絕對讓我將其放置在我想要的任何地方:50%將其放在窗口頂部的一半,但從記分板元素的最左側開始。為了確保它是完全居中的,我使用轉換屬性,Z-Index屬性可確保它始終處於頂部:
我也希望文本字體以復古主題為主題。大多數現代瀏覽器都讓我包括自己的字體。我從Codeman38(Zone38.net)找到了適當的按下2P字體。要將字體添加到計分板中,我必須創建一個新的字體臉:
<span><span><!DOCTYPE html></span> </span><span><span><span><html</span>></span> </span><span><span><span><head</span>></span> </span> <span><span><span><script</span> src<span>="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.1.min.js"</span>></span><span><span></script</span>></span> </span> <span><span><span><script</span> src<span>="ping.js"</span>></span><span><span></script</span>></span> </span> <span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="style.css"</span>></span><span><span></script</span>></span> </span><span><span><span></head</span>></span> </span><span><span><span><body</span>></span> </span><span><span><span></body</span>></span> </span><span><span><span></html</span>></span> </span>
>現在,得分在H1標籤中,因此我可以為所有H1標籤設置字體。萬一缺少字體,我將提供一些備份選項:
><span><span><span><div</span> id<span>="arena"</span>></span> </span> <span><span><span><div</span> id<span>="score"</span>></span> </span> <span><span><span><h1</span>></span> </span> <span><span><span><span</span> id<span>="playerScore"</span>></span>0<span><span></span</span>></span> </span> <span><span><span><span</span> id<span>="opponentScore"</span>></span>0<span><span></span</span>></span> </span> <span><span><span></h1</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="player"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="opponent"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="ball"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="controls-left"</span>></span> </span> <span><span><span><div</span> id<span>="up"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="down"</span>></span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="controls-right"</span>></span> </span> <span><span><span><div</span> id<span>="left"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="right"</span>></span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span><span><span><span></div</span>></span> </span>
對於其他元素,我將使用一張圖像片。精靈表包含一個我在一個文件中所需的遊戲所需的圖像(請參見下圖)。
>>在此表上具有圖像的任何元素都將分配一個精靈類。然後,對於每個元素,我將使用背景位置來定義我要顯示的精靈表的哪一部分:
<span>body { </span> <span>margin: 0px; </span> <span>height: 100%; </span><span>} </span>接下來,我將將Sprite類添加到所有將使用精靈表的元素中。我將不得不短暫地跳回HTML做到這一點:
>
<span><span>#arena</span> { </span> <span>background-image: <span>url(arena.png)</span>; </span> <span>background-size: 100% 100%; </span> <span>margin: 0px; </span> <span>width: 100%; </span> <span>height: 100%; </span> <span>overflow: hidden; </span><span>} </span>現在,我需要指示每個元素在紙板上的每個精靈的位置。同樣,我將使用背景位置進行此操作:
<span><span>#score</span> { </span> <span>position: absolute; </span> <span>z-index: 1000; </span> <span>left: 50%; </span> <span>top: 5%; </span> <span>transform: translate(-50%, 0%); </span><span>} </span>>位置:玩家,對手和球上的絕對屬性將讓我使用JavaScript移動它們。如果您現在查看頁面,您會看到控件和球上附有不必要的作品。這是因為精靈尺寸小於默認的128像素,因此我將其調整為正確的尺寸。只有一個球,所以我將直接設置它的大小:
<span><span>@font-face</span> { </span> <span>font-family: 'PressStart2P'; </span> <span>src: <span>url('PressStart2P.woff')</span>; </span><span>} </span>>有四個控制元素(用戶可以按下按鈕以移動播放器的按鈕),因此我應該為他們做一個特殊的課程。我還會添加一個邊距,以便它們周圍有一點空間:
<span>h1 { </span> <span>font-family: 'PressStart2P', 'Georgia', serif; </span><span>} </span>添加此類課程後,遊戲具有更好的外觀控件:
>
<span><span>.sprite</span> { </span> <span>background-image: <span>url("sprites.png")</span>; </span> <span>width: 128px; </span> <span>height: 128px; </span><span>} </span>>我需要做的最後一件事是將控件放置,以便在頁面在移動設備上運行時用戶的拇指。我將它們粘在底部的角落:
<span><span><span><div</span> id<span>="player"</span> class<span>="sprite"</span>></span><span><span></div</span>></span> </span><span><span><span><div</span> id<span>="opponent"</span> class<span>="sprite"</span>></span><span><span></div</span>></span> </span><span><span><span><div</span> id<span>="ball"</span> class<span>="sprite"</span>></span><span><span></div</span>></span> </span><span><span><span><div</span> id<span>="controls-left"</span>></span> </span> <span><span><span><div</span> id<span>="up"</span> class<span>="sprite"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="down"</span> class<span>="sprite"</span>></span><span><span></div</span>></span> </span><span><span><span></div</span>></span> </span><span><span><span><div</span> id<span>="controls-right"</span>></span> </span> <span><span><span><div</span> id<span>="left"</span> class<span>="sprite"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="right"</span> class<span>="sprite"</span>></span><span><span></div</span>></span> </span><span><span><span></div</span>></span> </span>>關於此設計的一件好事是一切都設置為具有相對位置。這意味著屏幕可能是許多不同的尺寸,同時仍然使遊戲看起來不錯。
>
遵循彈跳球>
這是一個簡單的概念。當您調用它時,球功能會產生一個新的球。無需使用新關鍵字。這種模式通過闡明可用的對象屬性來減少該變量周圍的一些混亂。而且由於我只有一個小時來製作這個遊戲,所以我需要最大程度地減少任何令人困惑的概念。當我完成簡單的球類時,這種模式的結構:
>為創建一個新的球,我只稱其為已定義的此功能:
<span><span><!DOCTYPE html></span> </span><span><span><span><html</span>></span> </span><span><span><span><head</span>></span> </span> <span><span><span><script</span> src<span>="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.1.min.js"</span>></span><span><span></script</span>></span> </span> <span><span><span><script</span> src<span>="ping.js"</span>></span><span><span></script</span>></span> </span> <span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="style.css"</span>></span><span><span></script</span>></span> </span><span><span><span></head</span>></span> </span><span><span><span><body</span>></span> </span><span><span><span></body</span>></span> </span><span><span><span></html</span>></span> </span>
>現在我想使球移動並在屏幕上彈跳。首先,我需要以某個時間間隔調用更新功能來創建球的動畫。現代瀏覽器提供了一種用於此目的的函數,稱為requestAnimationFrame。這將作為一個參數函數,並將在下次運行動畫週期時稱之為傳遞功能。當瀏覽器準備好進行更新時,這使球可以平穩地走動。當它調用傳遞功能時,它將在加載頁面後將其在幾秒鐘內提供時間。這對於確保動畫隨著時間的流逝至關重要。在遊戲中,requestAnimationFrame的使用如下:
><span><span><span><div</span> id<span>="arena"</span>></span> </span> <span><span><span><div</span> id<span>="score"</span>></span> </span> <span><span><span><h1</span>></span> </span> <span><span><span><span</span> id<span>="playerScore"</span>></span>0<span><span></span</span>></span> </span> <span><span><span><span</span> id<span>="opponentScore"</span>></span>0<span><span></span</span>></span> </span> <span><span><span></h1</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="player"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="opponent"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="ball"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="controls-left"</span>></span> </span> <span><span><span><div</span> id<span>="up"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="down"</span>></span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="controls-right"</span>></span> </span> <span><span><span><div</span> id<span>="left"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="right"</span>></span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span><span><span><span></div</span>></span> </span>
請注意,隨著球完成更新,函數中再次調用requestAnimationFrame。這確保了連續動畫。
>雖然此代碼可以正常工作,但在頁面滿載完整之前,腳本可能會開始運行。為了避免這種情況,我將使用jQuery:
<span>body { </span> <span>margin: 0px; </span> <span>height: 100%; </span><span>} </span>因為我知道球的速度(速度)和自上次更新以來的時間,所以我可以做一些簡單的物理學來向前移動球:
<span><span>#arena</span> { </span> <span>background-image: <span>url(arena.png)</span>; </span> <span>background-size: 100% 100%; </span> <span>margin: 0px; </span> <span>width: 100%; </span> <span>height: 100%; </span> <span>overflow: hidden; </span><span>} </span>>嘗試運行代碼,您會看到球以一定角度移動並從屏幕上移動。這很有趣,但是一旦球從屏幕的邊緣掉下來,樂趣就會停止。因此,下一步是使球從屏幕的邊緣彈起,如圖7所示。添加此代碼並運行該應用程序將顯示一個連續彈跳的球。
一個可移動的播放器
我現在可以創建兩個玩家,並讓他們移至屏幕上適當的一側:
<span><span>#score</span> { </span> <span>position: absolute; </span> <span>z-index: 1000; </span> <span>left: 50%; </span> <span>top: 5%; </span> <span>transform: translate(-50%, 0%); </span><span>} </span>
鍵盤輸入
<span><span>@font-face</span> { </span> <span>font-family: 'PressStart2P'; </span> <span>src: <span>url('PressStart2P.woff')</span>; </span><span>} </span>>因此,從理論上講,您可以移動玩家,但是如果沒有指示,它不會移動。在左側的播放器中添加一些控件。您需要兩種控制該播放器的方法:使用鍵盤(在PC上)並敲擊控件(在平板電腦和電話上)。
> 為了確保各種平台上的觸摸輸入和鼠標輸入之間的一致性,我將使用出色的統一框架hand.js(handjs.codeplex.com)。首先,我將腳本添加到HTML中:
><span>h1 { </span> <span>font-family: 'PressStart2P', 'Georgia', serif; </span><span>} </span>然後,當您按鍵盤鍵A和Z時,或者點擊控件時,我將使用Hand.js和JQuery來控製播放器。
<span><span><!DOCTYPE html></span> </span><span><span><span><html</span>></span> </span><span><span><span><head</span>></span> </span> <span><span><span><script</span> src<span>="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.1.min.js"</span>></span><span><span></script</span>></span> </span> <span><span><span><script</span> src<span>="ping.js"</span>></span><span><span></script</span>></span> </span> <span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="style.css"</span>></span><span><span></script</span>></span> </span><span><span><span></head</span>></span> </span><span><span><span><body</span>></span> </span><span><span><span></body</span>></span> </span><span><span><span></html</span>></span> </span>
隨著球的反彈,我想讓玩家抓住球。當它被抓住時,球有一個主人,並遵循該主人的動議。我將在球的移動方法中添加功能,允許所有者,然後球將遵循:
<span><span><span><div</span> id<span>="arena"</span>></span> </span> <span><span><span><div</span> id<span>="score"</span>></span> </span> <span><span><span><h1</span>></span> </span> <span><span><span><span</span> id<span>="playerScore"</span>></span>0<span><span></span</span>></span> </span> <span><span><span><span</span> id<span>="opponentScore"</span>></span>0<span><span></span</span>></span> </span> <span><span><span></h1</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="player"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="opponent"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="ball"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="controls-left"</span>></span> </span> <span><span><span><div</span> id<span>="up"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="down"</span>></span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="controls-right"</span>></span> </span> <span><span><span><div</span> id<span>="left"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="right"</span>></span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span><span><span><span></div</span>></span> </span>>當前,無法獲得播放器對象的位置,因此我將getPosition和getside登錄器添加到播放器對象:
>
<span>body { </span> <span>margin: 0px; </span> <span>height: 100%; </span><span>} </span>現在,如果球有一個所有者,它將跟隨周圍的所有者。但是如何確定所有者?有人必須接球。讓我們確定一個球員精靈何時接觸球。發生這種情況時,我將把球的所有者設置為那個球員。
>
<span><span>#arena</span> { </span> <span>background-image: <span>url(arena.png)</span>; </span> <span>background-size: 100% 100%; </span> <span>margin: 0px; </span> <span>width: 100%; </span> <span>height: 100%; </span> <span>overflow: hidden; </span><span>} </span>>如果您現在嘗試玩遊戲,則會發現球從屏幕頂部彈起,並且可以移動玩家捕捉它。現在,你怎麼扔它?這就是右手控制的目的 - 趕出球。讓我們為玩家添加一個“火”功能以及AIM屬性。
>
然後,我們可以增強鍵盤功能以設置播放器的目標和射擊功能。瞄準的工作方式略有不同。當瞄準鍵釋放時,目標將恢復直接。<span><span>#score</span> { </span> <span>position: absolute; </span> <span>z-index: 1000; </span> <span>left: 50%; </span> <span>top: 5%; </span> <span>transform: translate(-50%, 0%); </span><span>} </span>>
最終添加將是所有控件的觸摸支持。我將在正確的控件上更改玩家的目標。我還將在屏幕上的任何地方都觸摸它:
<span><span>@font-face</span> { </span> <span>font-family: 'PressStart2P'; </span> <span>src: <span>url('PressStart2P.woff')</span>; </span><span>} </span>
>保持得分
<span>h1 { </span> <span>font-family: 'PressStart2P', 'Georgia', serif; </span><span>} </span>
>下面的代碼對這些事件做出反應,以更新得分並交出球。將此代碼添加到JavaScript文檔的底部。
<span><span>.sprite</span> { </span> <span>background-image: <span>url("sprites.png")</span>; </span> <span>width: 128px; </span> <span>height: 128px; </span><span>} </span>
現在,當球超越對手時(這並不困難,因為對手沒有移動),您的得分就會上升,球將交給對手。但是,對手只會抓住球。
<span><span><span><div</span> id<span>="player"</span> class<span>="sprite"</span>></span><span><span></div</span>></span> </span><span><span><span><div</span> id<span>="opponent"</span> class<span>="sprite"</span>></span><span><span></div</span>></span> </span><span><span><span><div</span> id<span>="ball"</span> class<span>="sprite"</span>></span><span><span></div</span>></span> </span><span><span><span><div</span> id<span>="controls-left"</span>></span> </span> <span><span><span><div</span> id<span>="up"</span> class<span>="sprite"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="down"</span> class<span>="sprite"</span>></span><span><span></div</span>></span> </span><span><span><span></div</span>></span> </span><span><span><span><div</span> id<span>="controls-right"</span>></span> </span> <span><span><span><div</span> id<span>="left"</span> class<span>="sprite"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="right"</span> class<span>="sprite"</span>></span><span><span></div</span>></span> </span><span><span><span></div</span>></span> </span>獲得Smart
您幾乎有一場比賽。如果你有一個可以和誰一起玩的人。作為最後一步,我將展示如何用簡單的AI控制對手。對手會在球移動時試圖與球保持平行。如果對手接球,它將隨機移動並朝隨機發射球。為了使人工智能感覺更加人性化,我將在所有事情中添加延誤。請注意,這不是高度智能的AI,但這將是與遊戲對抗的事情。
在設計這種系統時,在各州進行思考是一件好事。對手AI有三個可能的狀態:遵循,瞄準/射擊和等待。我將成為遵循添加更人性化元素的行動之間的狀態。僅針對AI對像開始:
<span><span><!DOCTYPE html></span> </span><span><span><span><html</span>></span> </span><span><span><span><head</span>></span> </span> <span><span><span><script</span> src<span>="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.1.min.js"</span>></span><span><span></script</span>></span> </span> <span><span><span><script</span> src<span>="ping.js"</span>></span><span><span></script</span>></span> </span> <span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="style.css"</span>></span><span><span></script</span>></span> </span><span><span><span></head</span>></span> </span><span><span><span><body</span>></span> </span><span><span><span></body</span>></span> </span><span><span><span></html</span>></span> </span>
>根據AI的狀態,我希望它採取不同的動作。就像球一樣,我將在requestAnimationframe中進行更新函數,以根據其狀態制定AI法案:
<span><span><span><div</span> id<span>="arena"</span>></span> </span> <span><span><span><div</span> id<span>="score"</span>></span> </span> <span><span><span><h1</span>></span> </span> <span><span><span><span</span> id<span>="playerScore"</span>></span>0<span><span></span</span>></span> </span> <span><span><span><span</span> id<span>="opponentScore"</span>></span>0<span><span></span</span>></span> </span> <span><span><span></h1</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="player"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="opponent"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="ball"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="controls-left"</span>></span> </span> <span><span><span><div</span> id<span>="up"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="down"</span>></span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="controls-right"</span>></span> </span> <span><span><span><div</span> id<span>="left"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> id<span>="right"</span>></span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span><span><span><span></div</span>></span> </span>>以下狀態很簡單。對手沿球的垂直方向移動,而AI向等待狀態轉變,以注入一些緩慢的反應時間。下面的代碼顯示了這兩個狀態:
<span>body { </span> <span>margin: 0px; </span> <span>height: 100%; </span><span>} </span>> AI在必須跟隨球和等待一秒鐘之間交替。現在,將代碼添加到遊戲範圍的更新功能:
<span><span>#arena</span> { </span> <span>background-image: <span>url(arena.png)</span>; </span> <span>background-size: 100% 100%; </span> <span>margin: 0px; </span> <span>width: 100%; </span> <span>height: 100%; </span> <span>overflow: hidden; </span><span>} </span>>運行遊戲時,您會看到對手跟隨球的動作,而不是在不到30行代碼的情況下進行糟糕的AI。當然,如果對手接球,那將無能為力。因此,對於一個小時的最後一個技巧,是時候處理目標狀態的動作了。
總結
到目前為止,您擁有一個完整的網絡遊戲,可在PC,智能手機和平板電腦上使用。該遊戲有許多可能的改進。例如,它在智能手機上的肖像模式中看起來會有些尷尬,因此您需要確保在景觀中握住手機才能正常工作。這只是網絡及以後遊戲開發的可能性的一個小表明。
<span><span>#score</span> { </span> <span>position: absolute; </span> <span>z-index: 1000; </span> <span>left: 50%; </span> <span>top: 5%; </span> <span>transform: translate(-50%, 0%); </span><span>} </span>感謝技術專家Mohamed Ameen Ibrahim回顧了這篇文章。
本文是Microsoft Tech傳教士的Web開發系列的一部分,該系列有關實用的JavaScript學習,開源項目和互操作性最佳實踐,包括Microsoft Edge瀏覽器和新的Edgehtml渲染引擎。
我們鼓勵您在瀏覽器和設備上進行測試,包括Microsoft Edge(Windows 10的默認瀏覽器),並在dev.modern.ie上使用免費工具:>掃描您的網站以獲取過時的庫,佈局問題和可訪問性
>>遠程測試您自己的設備上的Microsoft Edge
GitHub上的編碼實驗室:跨瀏覽器測試和最佳實踐在Microsoft Edge上以及我們的工程師和傳教士的Web平台上的深入技術學習:
我如何在Visual Studio中添加聲音效果和音樂?在Visual Studio中為遊戲的聲音效果和音樂涉及使用System.Media名稱空間中的Soundplayer類。您可以使用播放方法播放聲音效果或音樂曲目,以及停止播放聲音的停止方法。您也可以使用Playlooping方法連續播放聲音。 Soundplayer類支持WAV文件,因此您需要將聲音效果和音樂曲目轉換為此格式。
>
雖然在技術上可以使用Visual Studio和asp.net開發遊戲機,但這並不是這些最常見的用例工具。遊戲機遊戲開發通常涉及使用專用遊戲開發引擎(例如Unity或Unreal Engine),該引擎為遊戲機遊戲開發提供了更高級的工具和功能。但是,您可以使用Visual Studio和ASP.NET來開發控制台遊戲的服務器端組件,例如多人遊戲配對服務或排行榜系統。 >以上是使用Visual Studio和ASP.NET在一個小時內構建網絡遊戲的詳細內容。更多資訊請關注PHP中文網其他相關文章!