国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
游戲設(shè)計(jì)簡(jiǎn)化:從基本的游戲設(shè)計(jì)原理和一個(gè)簡(jiǎn)單的游戲開(kāi)始,例如“ ping”(乒乓變體),重點(diǎn)放在布局和基本游戲機(jī)制上。
捕獲球
>當(dāng)球通過(guò)球員時(shí),我想更改得分并將球交給那個(gè)球員。我將使用自定義事件,以便可以將評(píng)分與任何現(xiàn)有對(duì)象分開(kāi)。更新功能越來(lái)越長(zhǎng),因此我將添加一個(gè)名為CheckScored的新私人功能:
與JavaScript更多動(dòng)手
使用Mac,Linux和Windows
我可以使用Visual Studio和asp.net開(kāi)發(fā)移動(dòng)游戲?您可以使用Visual Studio和ASP.NET開(kāi)發(fā)手機(jī)游戲。但是,重要的是要注意,ASP.NET主要是??一個(gè)網(wǎng)絡(luò)開(kāi)發(fā)框架,因此您需要使用其他工具和庫(kù)來(lái)創(chuàng)建手機(jī)游戲。 Xamarin是Visual Studio隨附的跨平臺(tái)開(kāi)發(fā)工具,允許您在C#中編寫(xiě)游戲代碼,然后將其編譯為Android,iOS和Windows Phone。

>如何在Visual Studio中優(yōu)化游戲的性能?首先,您應(yīng)該使用內(nèi)置分析工具來(lái)識(shí)別代碼中的瓶頸。接下來(lái),您可以使用諸如代碼優(yōu)化,數(shù)據(jù)結(jié)構(gòu)優(yōu)化和算法優(yōu)化之類(lèi)的技術(shù)來(lái)提高代碼的性能。此外,您應(yīng)該使用現(xiàn)代圖形卡的硬件加速功能來(lái)提高游戲的渲染性能。

>我可以使用Visual Studio和asp.net開(kāi)發(fā)游戲機(jī)游戲嗎?
首頁(yè) web前端 js教程 使用Visual Studio和ASP.NET在一個(gè)小時(shí)內(nèi)構(gòu)建網(wǎng)絡(luò)游戲

使用Visual Studio和ASP.NET在一個(gè)小時(shí)內(nèi)構(gòu)建網(wǎng)絡(luò)游戲

Feb 19, 2025 pm 12:35 PM

使用Visual Studio和ASP.NET在一個(gè)小時(shí)內(nèi)構(gòu)建網(wǎng)絡(luò)游戲

>本文是Microsoft的Web開(kāi)發(fā)系列的一部分。感謝您支持使SitietPoint成為可能的合作伙伴。 本文討論:

基本游戲發(fā)展哲學(xué)
  • 使用Web技術(shù)進(jìn)行游戲開(kāi)發(fā)
  • 添加游戲控件和AI
  • 討論的技術(shù):
  • Visual Studio 2013 Pro,Visual Studio 2013 Community,ASP.NET

>代碼下載(.zip)

  • >您不需要全新的技能來(lái)開(kāi)發(fā)游戲。實(shí)際上,您目前在HTML,JavaScript,CSS等方面的網(wǎng)絡(luò)開(kāi)發(fā)技能非常適合各種游戲。當(dāng)您使用Web技術(shù)構(gòu)建游戲時(shí),它將在幾乎所有帶有瀏覽器的設(shè)備上運(yùn)行。
  • > 為了證明這一點(diǎn),我將展示使用Web Technologies和兩個(gè)外部圖書(shū)館從頭開(kāi)始構(gòu)建游戲,我將在不到一個(gè)小時(shí)的時(shí)間內(nèi)完成。我將介紹從基本設(shè)計(jì)和布局,控件和精靈到簡(jiǎn)單對(duì)手的人工智能(AI)的各種游戲開(kāi)發(fā)主題。我什至要開(kāi)發(fā)游戲,以便在PC,平板電腦和智能手機(jī)上使用。如果您有作為Web開(kāi)發(fā)人員或其他開(kāi)發(fā)領(lǐng)域編程的經(jīng)驗(yàn),但是沒(méi)有經(jīng)驗(yàn)寫(xiě)游戲的經(jīng)驗(yàn),那么本文將使您入門(mén)。如果您給我一個(gè)小時(shí),我保證會(huì)向您展示繩索。
  • 鑰匙要點(diǎn)

快速開(kāi)發(fā):利用HTML,JavaScript和CSS中的現(xiàn)有Web開(kāi)發(fā)技能來(lái)創(chuàng)建幾乎任何帶有瀏覽器的設(shè)備,使用Visual Studio和ASP.NET。

> Visual Studio作為工具:利用視覺(jué)工作室進(jìn)行快速游戲開(kāi)發(fā)和跨不同設(shè)備進(jìn)行測(cè)試,確保兼容性和性能。

游戲設(shè)計(jì)簡(jiǎn)化:從基本的游戲設(shè)計(jì)原理和一個(gè)簡(jiǎn)單的游戲開(kāi)始,例如“ ping”(乒乓變體),重點(diǎn)放在布局和基本游戲機(jī)制上。

>
    交互式元素:使用JavaScript和CSS進(jìn)行動(dòng)態(tài)游戲玩法,并合并交互式游戲控件,以確保諸如球和玩家之類(lèi)的元素有效地響應(yīng)用戶輸入。 AI集成:為對(duì)手實(shí)施基本人工智能,允許更具吸引力的單人游戲體驗(yàn)。
  • >跨平臺(tái)兼容性:測(cè)試并確保游戲在各種瀏覽器和設(shè)備上的性能都很好
  • 啟動(dòng)并運(yùn)行
  • >我將在Visual Studio中進(jìn)行所有開(kāi)發(fā),這將在我進(jìn)行更改時(shí)快速執(zhí)行Web應(yīng)用程序。請(qǐng)確保擁有最新版本的Visual Studio,以便您可以跟隨。我使用了Visual Studio 2013 Pro,但通過(guò)Visual Studio 2013社區(qū)更新了代碼。另外,如果您有Mac或Linux,則如今可以使用Visual Studio代碼。

    這個(gè)應(yīng)用程序?qū)⒉恍枰?wù)器代碼,因此我首先在Visual Studio中創(chuàng)建一個(gè)新的,空的網(wǎng)頁(yè)項(xiàng)目。我將通過(guò)選擇文件后選擇“ Visual C?!边x項(xiàng)來(lái)使用空網(wǎng)站的空C#模板。新| ASP.NET空網(wǎng)站。

    索引HTML文件僅需要三個(gè)資源:jQuery,主樣式表和主JavaScript文件。我將一個(gè)空的CSS文件添加到名為style.css和一個(gè)空的JavaScript文件的項(xiàng)目中,稱(chēng)為ping.js,以避免加載頁(yè)面時(shí)錯(cuò)誤:

    >
    <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>

    也不要忘記在瀏覽器和設(shè)備之間對(duì)此應(yīng)用進(jìn)行測(cè)試(或任何其他)。雖然我編寫(xiě)的代碼與Chrome,F(xiàn)irefox和Microsoft Edge等現(xiàn)代瀏覽器可互操作,但這始終是雙重檢查的最佳實(shí)踐。現(xiàn)在,您可以使用免費(fèi)的虛擬機(jī)和其他工具(例如http://www.browserstack.com。

    基本設(shè)計(jì)

    我正在構(gòu)建的游戲是我稱(chēng)為ping的變體。 Ping與Pong的規(guī)則基本相同,只是任何一個(gè)玩家在涉及到球時(shí)都會(huì)抓住球,然后可以直接或向上或向下傾斜或向下發(fā)射球。通常最好在構(gòu)建游戲之前繪制您希望游戲的外觀。對(duì)于此游戲,我想看到的整體布局如下所示。

    >

    使用Visual Studio和ASP.NET在一個(gè)小時(shí)內(nèi)構(gòu)建網(wǎng)絡(luò)游戲>一旦我開(kāi)發(fā)了游戲設(shè)計(jì)布局,只是將每個(gè)元素添加到HTML以構(gòu)建游戲的問(wèn)題。但是,要注意的一件事是,我將對(duì)記分板和控件進(jìn)行分組,以確保它們坐在一起。因此,您可以一一看到我添加了這些元素,如下所示:

    >

    <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>
    >使用樣式

    播放

    如果您要加載此頁(yè)面,則不會(huì)看到任何東西,因?yàn)闆](méi)有應(yīng)用樣式。我已經(jīng)在HTML中設(shè)置了指向main.css文件的鏈接,因此我將所有CSS放在帶有該名稱(chēng)的新文件中。我要做的第一件事是將所有內(nèi)容都放在屏幕上。頁(yè)面的主體需要占用整個(gè)屏幕,因此我將首先設(shè)置:>

    >第二,我需要將競(jìng)技場(chǎng)填充整個(gè)屏幕,并應(yīng)用了競(jìng)技場(chǎng)背景圖像(請(qǐng)參見(jiàn)下圖):
    <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>
    接下來(lái),我將記分牌定位。我希望這在其他元素上出現(xiàn)頂部和中心。命令位置:絕對(duì)讓我將其放置在我想要的任何地方:50%將其放在窗口頂部的一半,但從記分板元素的最左側(cè)開(kāi)始。為了確保它是完全居中的,我使用轉(zhuǎn)換屬性,Z-Index屬性可確保它始終處于頂部:使用Visual Studio和ASP.NET在一個(gè)小時(shí)內(nèi)構(gòu)建網(wǎng)絡(luò)游戲>

    我也希望文本字體以復(fù)古主題為主題。大多數(shù)現(xiàn)代瀏覽器都讓我包括自己的字體。我從Codeman38(Zone38.net)找到了適當(dāng)?shù)陌聪?P字體。要將字體添加到計(jì)分板中,我必須創(chuàng)建一個(gè)新的字體臉:>
    <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>

    >現(xiàn)在,得分在H1標(biāo)簽中,因此我可以為所有H1標(biāo)簽設(shè)置字體。萬(wàn)一缺少字體,我將提供一些備份選項(xiàng):

    >
    <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>

    對(duì)于其他元素,我將使用一張圖像片。精靈表包含一個(gè)我在一個(gè)文件中所需的游戲所需的圖像(請(qǐng)參見(jiàn)下圖)。

    > 使用Visual Studio和ASP.NET在一個(gè)小時(shí)內(nèi)構(gòu)建網(wǎng)絡(luò)游戲

    >在此表上具有圖像的任何元素都將分配一個(gè)精靈類(lèi)。然后,對(duì)于每個(gè)元素,我將使用背景位置來(lái)定義我要顯示的精靈表的哪一部分:

    <span>body {
    </span>  <span>margin: 0px;
    </span>  <span>height: 100%;
    </span><span>}
    </span>
    接下來(lái),我將將Sprite類(lèi)添加到所有將使用精靈表的元素中。我將不得不短暫地跳回HTML做到這一點(diǎn):

    >

    <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>
    現(xiàn)在,我需要指示每個(gè)元素在紙板上的每個(gè)精靈的位置。同樣,我將使用背景位置進(jìn)行此操作:

    <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>
    >位置:玩家,對(duì)手和球上的絕對(duì)屬性將讓我使用JavaScript移動(dòng)它們。如果您現(xiàn)在查看頁(yè)面,您會(huì)看到控件和球上附有不必要的作品。這是因?yàn)榫`尺寸小于默認(rèn)的128像素,因此我將其調(diào)整為正確的尺寸。只有一個(gè)球,所以我將直接設(shè)置它的大?。?p>

    <span><span>@font-face</span> {
    </span>  <span>font-family: 'PressStart2P';
    </span>  <span>src: <span>url('PressStart2P.woff')</span>;
    </span><span>}
    </span>
    >有四個(gè)控制元素(用戶可以按下按鈕以移動(dòng)播放器的按鈕),因此我應(yīng)該為他們做一個(gè)特殊的課程。我還會(huì)添加一個(gè)邊距,以便它們周?chē)幸稽c(diǎn)空間:

    <span>h1 {
    </span>  <span>font-family: 'PressStart2P', 'Georgia', serif;
    </span><span>}
    </span>
    添加此類(lèi)課程后,游戲具有更好的外觀控件:

    >

    <span><span>.sprite</span> {
    </span>  <span>background-image: <span>url("sprites.png")</span>;
    </span>  <span>width: 128px;
    </span>  <span>height: 128px;
    </span><span>}
    </span>
    >我需要做的最后一件事是將控件放置,以便在頁(yè)面在移動(dòng)設(shè)備上運(yùn)行時(shí)用戶的拇指。我將它們粘在底部的角落:

    <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>
    >關(guān)于此設(shè)計(jì)的一件好事是一切都設(shè)置為具有相對(duì)位置。這意味著屏幕可能是許多不同的尺寸,同時(shí)仍然使游戲看起來(lái)不錯(cuò)。

    >

    遵循彈跳球

    >現(xiàn)在,我將球四處移動(dòng)。對(duì)于JavaScript代碼,就像我對(duì)CSS一樣,我引用了一個(gè)名為ping.js的文件。我將此代碼添加到帶有該名稱(chēng)的新文件中。我將為球和每個(gè)球員制作對(duì)象,但是我將使用工廠模式作為對(duì)象。

    >

    這是一個(gè)簡(jiǎn)單的概念。當(dāng)您調(diào)用它時(shí),球功能會(huì)產(chǎn)生一個(gè)新的球。無(wú)需使用新關(guān)鍵字。這種模式通過(guò)闡明可用的對(duì)象屬性來(lái)減少該變量周?chē)囊恍┗靵y。而且由于我只有一個(gè)小時(shí)來(lái)制作這個(gè)游戲,所以我需要最大程度地減少任何令人困惑的概念。

    當(dāng)我完成簡(jiǎn)單的球類(lèi)時(shí),這種模式的結(jié)構(gòu):

    >

    為創(chuàng)建一個(gè)新的球,我只稱(chēng)其為已定義的此功能:>
    <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>

    >現(xiàn)在我想使球移動(dòng)并在屏幕上彈跳。首先,我需要以某個(gè)時(shí)間間隔調(diào)用更新功能來(lái)創(chuàng)建球的動(dòng)畫(huà)。現(xiàn)代瀏覽器提供了一種用于此目的的函數(shù),稱(chēng)為requestAnimationFrame。這將作為一個(gè)參數(shù)函數(shù),并將在下次運(yùn)行動(dòng)畫(huà)周期時(shí)稱(chēng)之為傳遞功能。當(dāng)瀏覽器準(zhǔn)備好進(jìn)行更新時(shí),這使球可以平穩(wěn)地走動(dòng)。當(dāng)它調(diào)用傳遞功能時(shí),它將在加載頁(yè)面后將其在幾秒鐘內(nèi)提供時(shí)間。這對(duì)于確保動(dòng)畫(huà)隨著時(shí)間的流逝至關(guān)重要。在游戲中,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>

    請(qǐng)注意,隨著球完成更新,函數(shù)中再次調(diào)用requestAnimationFrame。這確保了連續(xù)動(dòng)畫(huà)。

    >雖然此代碼可以正常工作,但在頁(yè)面滿載完整之前,腳本可能會(huì)開(kāi)始運(yùn)行。為了避免這種情況,我將使用jQuery:>加載頁(yè)面時(shí)啟動(dòng)代碼

    <span>body {
    </span>  <span>margin: 0px;
    </span>  <span>height: 100%;
    </span><span>}
    </span>
    因?yàn)槲抑狼虻乃俣龋ㄋ俣龋┖妥陨洗胃乱詠?lái)的時(shí)間,所以我可以做一些簡(jiǎn)單的物理學(xué)來(lái)向前移動(dòng)球:

    <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>
    >嘗試運(yùn)行代碼,您會(huì)看到球以一定角度移動(dòng)并從屏幕上移動(dòng)。這很有趣,但是一旦球從屏幕的邊緣掉下來(lái),樂(lè)趣就會(huì)停止。因此,下一步是使球從屏幕的邊緣彈起,如圖7所示。添加此代碼并運(yùn)行該應(yīng)用程序?qū)@示一個(gè)連續(xù)彈跳的球。>

    一個(gè)可移動(dòng)的播放器

    現(xiàn)在是時(shí)候制作播放器對(duì)象了。散開(kāi)播放器類(lèi)的第一步是使移動(dòng)功能更改播放器的位置。側(cè)變量將指示球員將居住的球場(chǎng)的哪一側(cè),這將決定如何水平定位球員。傳遞到移動(dòng)函數(shù)的Y值將是播放器將移動(dòng)多少或向下移動(dòng)的值

    然后,我們可以布置玩家的運(yùn)動(dòng),如果玩家精靈到達(dá)窗戶的頂部或底部,則停止運(yùn)動(dòng)。>

    我現(xiàn)在可以創(chuàng)建兩個(gè)玩家,并讓他們移至屏幕上適當(dāng)?shù)囊粋?cè):>
    <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>

    鍵盤(pán)輸入

    <span><span>@font-face</span> {
    </span>  <span>font-family: 'PressStart2P';
    </span>  <span>src: <span>url('PressStart2P.woff')</span>;
    </span><span>}
    </span>
    >因此,從理論上講,您可以移動(dòng)玩家,但是如果沒(méi)有指示,它不會(huì)移動(dòng)。在左側(cè)的播放器中添加一些控件。您需要兩種控制該播放器的方法:使用鍵盤(pán)(在PC上)并敲擊控件(在平板電腦和電話上)。

    > 為了確保各種平臺(tái)上的觸摸輸入和鼠標(biāo)輸入之間的一致性,我將使用出色的統(tǒng)一框架hand.js(handjs.codeplex.com)。首先,我將腳本添加到HTML中:

    >
    <span>h1 {
    </span>  <span>font-family: 'PressStart2P', 'Georgia', serif;
    </span><span>}
    </span>
    然后,當(dāng)您按鍵盤(pán)鍵A和Z時(shí),或者點(diǎn)擊控件時(shí),我將使用Hand.js和JQuery來(lái)控制播放器。

    <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>

    捕獲球

    隨著球的反彈,我想讓玩家抓住球。當(dāng)它被抓住時(shí),球有一個(gè)主人,并遵循該主人的動(dòng)議。我將在球的移動(dòng)方法中添加功能,允許所有者,然后球?qū)⒆裱?ancy>:

    <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>
    >當(dāng)前,無(wú)法獲得播放器對(duì)象的位置,因此我將getPosition和getside登錄器添加到播放器對(duì)象:

    >

    <span>body {
    </span>  <span>margin: 0px;
    </span>  <span>height: 100%;
    </span><span>}
    </span>
    現(xiàn)在,如果球有一個(gè)所有者,它將跟隨周?chē)乃姓?。但是如何確定所有者?有人必須接球。讓我們確定一個(gè)球員精靈何時(shí)接觸球。發(fā)生這種情況時(shí),我將把球的所有者設(shè)置為那個(gè)球員。

    >

    <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>
    >如果您現(xiàn)在嘗試玩游戲,則會(huì)發(fā)現(xiàn)球從屏幕頂部彈起,并且可以移動(dòng)玩家捕捉它?,F(xiàn)在,你怎么扔它?這就是右手控制的目的 - 趕出球。讓我們?yōu)橥婕姨砑右粋€(gè)“火”功能以及AIM屬性。

    >

    然后,我們可以增強(qiáng)鍵盤(pán)功能以設(shè)置播放器的目標(biāo)和射擊功能。瞄準(zhǔn)的工作方式略有不同。當(dāng)瞄準(zhǔn)鍵釋放時(shí),目標(biāo)將恢復(fù)直接。
    <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>
    >

    最終添加將是所有控件的觸摸支持。我將在正確的控件上更改玩家的目標(biāo)。我還將在屏幕上的任何地方都觸摸它:
    <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>

    >當(dāng)球通過(guò)球員時(shí),我想更改得分并將球交給那個(gè)球員。我將使用自定義事件,以便可以將評(píng)分與任何現(xiàn)有對(duì)象分開(kāi)。更新功能越來(lái)越長(zhǎng),因此我將添加一個(gè)名為CheckScored的新私人功能:

    >

    >下面的代碼對(duì)這些事件做出反應(yīng),以更新得分并交出球。將此代碼添加到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>

    現(xiàn)在,當(dāng)球超越對(duì)手時(shí)(這并不困難,因?yàn)閷?duì)手沒(méi)有移動(dòng)),您的得分就會(huì)上升,球?qū)⒔唤o對(duì)手。但是,對(duì)手只會(huì)抓住球。
    <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

    您幾乎有一場(chǎng)比賽。如果你有一個(gè)可以和誰(shuí)一起玩的人。作為最后一步,我將展示如何用簡(jiǎn)單的AI控制對(duì)手。對(duì)手會(huì)在球移動(dòng)時(shí)試圖與球保持平行。如果對(duì)手接球,它將隨機(jī)移動(dòng)并朝隨機(jī)發(fā)射球。為了使人工智能感覺(jué)更加人性化,我將在所有事情中添加延誤。請(qǐng)注意,這不是高度智能的AI,但這將是與游戲?qū)沟氖虑椤?p>在設(shè)計(jì)這種系統(tǒng)時(shí),在各州進(jìn)行思考是一件好事。對(duì)手AI有三個(gè)可能的狀態(tài):遵循,瞄準(zhǔn)/射擊和等待。我將成為遵循添加更人性化元素的行動(dòng)之間的狀態(tài)。僅針對(duì)AI對(duì)象開(kāi)始:

    <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>

    >根據(jù)AI的狀態(tài),我希望它采取不同的動(dòng)作。就像球一樣,我將在requestAnimationframe中進(jìn)行更新函數(shù),以根據(jù)其狀態(tài)制定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>
    >以下?tīng)顟B(tài)很簡(jiǎn)單。對(duì)手沿球的垂直方向移動(dòng),而AI向等待狀態(tài)轉(zhuǎn)變,以注入一些緩慢的反應(yīng)時(shí)間。下面的代碼顯示了這兩個(gè)狀態(tài):

    <span>body {
    </span>  <span>margin: 0px;
    </span>  <span>height: 100%;
    </span><span>}
    </span>
    > AI在必須跟隨球和等待一秒鐘之間交替。現(xiàn)在,將代碼添加到游戲范圍的更新功能:

    <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>
    >運(yùn)行游戲時(shí),您會(huì)看到對(duì)手跟隨球的動(dòng)作,而不是在不到30行代碼的情況下進(jìn)行糟糕的AI。當(dāng)然,如果對(duì)手接球,那將無(wú)能為力。因此,對(duì)于一個(gè)小時(shí)的最后一個(gè)技巧,是時(shí)候處理目標(biāo)狀態(tài)的動(dòng)作了。 我希望AI隨機(jī)移動(dòng)幾次,然后以隨機(jī)的方向發(fā)射球。讓我們添加一個(gè)可以做到這一點(diǎn)的私人功能。將AimandFire函數(shù)添加到Aiming Case語(yǔ)句中,這使得可以進(jìn)行功能齊全的AI。

    總結(jié)

    到目前為止,您擁有一個(gè)完整的網(wǎng)絡(luò)游戲,可在PC,智能手機(jī)和平板電腦上使用。該游戲有許多可能的改進(jìn)。例如,它在智能手機(jī)上的肖像模式中看起來(lái)會(huì)有些尷尬,因此您需要確保在景觀中握住手機(jī)才能正常工作。這只是網(wǎng)絡(luò)及以后游戲開(kāi)發(fā)的可能性的一個(gè)小表明。

    <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>
    感謝技術(shù)專(zhuān)家Mohamed Ameen Ibrahim回顧了這篇文章。

    與JavaScript更多動(dòng)手

    本文是Microsoft Tech傳教士的Web開(kāi)發(fā)系列的一部分,該系列有關(guān)實(shí)用的JavaScript學(xué)習(xí),開(kāi)源項(xiàng)目和互操作性最佳實(shí)踐,包括Microsoft Edge瀏覽器和新的Edgehtml渲染引擎。

    我們鼓勵(lì)您在瀏覽器和設(shè)備上進(jìn)行測(cè)試,包括Microsoft Edge(Windows 10的默認(rèn)瀏覽器),并在dev.modern.ie上使用免費(fèi)工具:

    >掃描您的網(wǎng)站以獲取過(guò)時(shí)的庫(kù),布局問(wèn)題和可訪問(wèn)性

    >

    使用Mac,Linux和Windows

    的虛擬機(jī)

    >遠(yuǎn)程測(cè)試您自己的設(shè)備上的Microsoft Edge

    GitHub上的編碼實(shí)驗(yàn)室:跨瀏覽器測(cè)試和最佳實(shí)踐

    在Microsoft Edge上以及我們的工程師和傳教士的Web平臺(tái)上的深入技術(shù)學(xué)習(xí):
        2015年Microsoft Edge Web Summit(新瀏覽器,新支持的Web平臺(tái)標(biāo)準(zhǔn)以及JavaScript社區(qū)的來(lái)賓演講者的期望)
      • 哇,我可以在Mac&Linux上測(cè)試Edge&IE! (來(lái)自Rey Bango)>在沒(méi)有打破網(wǎng)絡(luò)的情況下(來(lái)自克里斯蒂安·海爾曼)
      • >前進(jìn)的javascript
      • > Edge渲染引擎,使網(wǎng)絡(luò)剛剛起作用(來(lái)自Jacob Rossi)
      • >使用WebGL啟用3D(來(lái)自David Catuhe,包括Vorlon.js和Babylonjs Projects)
      • 托管了網(wǎng)絡(luò)應(yīng)用程序和Web平臺(tái)創(chuàng)新(來(lái)自Kevin Hill和Kiril Seksenov,包括歧管項(xiàng)目)
      • Web平臺(tái)的更多免費(fèi)的跨平臺(tái)工具和資源:>
      • Linux,MacOS和Windows的Visual Studio代碼
      • >與node.js的代碼和azure
      的免費(fèi)試用

      經(jīng)常詢(xún)問(wèn)有關(guān)使用Visual Studio和ASP.NET
        建立網(wǎng)絡(luò)游戲的問(wèn)題(常見(jiàn)問(wèn)題解答)
      • >如何使用Visual Studio和ASP.NET?
      • >創(chuàng)建多人游戲游戲,使用Visual Studio和ASP.NET創(chuàng)建多人游戲涉及多個(gè)步驟。首先,您需要設(shè)計(jì)游戲邏輯,其中包括規(guī)則,玩家互動(dòng)和游戲的結(jié)果。接下來(lái),您需要使用HTML,CSS和JavaScript創(chuàng)建游戲的用戶界面。您可以使用ASP.NET中的SignalR庫(kù)來(lái)處理服務(wù)器與客戶端之間的實(shí)時(shí)通信。最后,您需要使用C#和ASP.NET在服務(wù)器端實(shí)現(xiàn)游戲邏輯。這涉及處理玩家連接,管理游戲狀態(tài)并向所有連接的客戶廣播更新。
      • >在Visual Studio中,游戲開(kāi)發(fā)的最佳實(shí)踐是什么?工作室包括使用模型視圖控制器(MVC)模式將游戲邏輯與用戶界面分開(kāi),使用實(shí)體框架進(jìn)行數(shù)據(jù)訪問(wèn),并使用單元測(cè)試來(lái)確保您的正確性 代碼。此外,您應(yīng)該使用Visual Studio中的內(nèi)置調(diào)試工具來(lái)識(shí)別和修復(fù)代碼中的錯(cuò)誤。

      我可以使用Visual Studio和asp.net開(kāi)發(fā)移動(dòng)游戲?您可以使用Visual Studio和ASP.NET開(kāi)發(fā)手機(jī)游戲。但是,重要的是要注意,ASP.NET主要是??一個(gè)網(wǎng)絡(luò)開(kāi)發(fā)框架,因此您需要使用其他工具和庫(kù)來(lái)創(chuàng)建手機(jī)游戲。 Xamarin是Visual Studio隨附的跨平臺(tái)開(kāi)發(fā)工具,允許您在C#中編寫(xiě)游戲代碼,然后將其編譯為Android,iOS和Windows Phone。

      >如何在Visual Studio中優(yōu)化游戲的性能?首先,您應(yīng)該使用內(nèi)置分析工具來(lái)識(shí)別代碼中的瓶頸。接下來(lái),您可以使用諸如代碼優(yōu)化,數(shù)據(jù)結(jié)構(gòu)優(yōu)化和算法優(yōu)化之類(lèi)的技術(shù)來(lái)提高代碼的性能。此外,您應(yīng)該使用現(xiàn)代圖形卡的硬件加速功能來(lái)提高游戲的渲染性能。

      我如何在Visual Studio中添加聲音效果和音樂(lè)?在Visual Studio中為游戲的聲音效果和音樂(lè)涉及使用System.Media名稱(chēng)空間中的Soundplayer類(lèi)。您可以使用播放方法播放聲音效果或音樂(lè)曲目,以及停止播放聲音的停止方法。您也可以使用Playlooping方法連續(xù)播放聲音。 Soundplayer類(lèi)支持WAV文件,因此您需要將聲音效果和音樂(lè)曲目轉(zhuǎn)換為此格式。

      >如何在Visual Studio中發(fā)布我的游戲?在Visual Studio中開(kāi)發(fā)的涉及多個(gè)步驟。首先,您需要在發(fā)布模式下構(gòu)建游戲以創(chuàng)建可執(zhí)行文件。接下來(lái),您需要使用諸如InstallShield之類(lèi)的工具為游戲創(chuàng)建安裝程序。最后,您可以通過(guò)各種渠道(例如您自己的網(wǎng)站,在線游戲商店或應(yīng)用商店。 >雖然可以使用Visual Studio和ASP.NET開(kāi)發(fā)3D游戲,但對(duì)于這些工具來(lái)說(shuō),它并不是最常見(jiàn)的用例。 ASP.NET主要是??一個(gè)網(wǎng)絡(luò)開(kāi)發(fā)框架,Visual Studio是一種通用開(kāi)發(fā)環(huán)境。如果您有興趣開(kāi)發(fā)3D游戲,則可能需要考慮使用專(zhuān)用游戲開(kāi)發(fā)引擎(例如Unity或Unreal Engine),這些引擎為3D游戲開(kāi)發(fā)提供了更高級(jí)的工具和功能。

      >我如何添加多個(gè) - 在Visual Studio中對(duì)我的游戲的支持?

      >在Visual Studio中為您的游戲添加多語(yǔ)言支持涉及使用ASP.NET的本地化功能。您可以使用資源文件為每種語(yǔ)言存儲(chǔ)文本,然后使用ResourceManager類(lèi)使用用戶的語(yǔ)言設(shè)置來(lái)檢索適當(dāng)?shù)奈谋尽D€可以使用CultureInfo類(lèi)來(lái)處理數(shù)字格式,日期格式和其他特定環(huán)境特定設(shè)置的差異。

      我如何在Visual Studio中測(cè)試我的游戲? Visual Studio涉及使用內(nèi)置測(cè)試工具。您可以使用單元測(cè)試來(lái)測(cè)試游戲的各個(gè)組件,集成測(cè)試以測(cè)試這些組件如何共同工作以及UI測(cè)試以測(cè)試用戶界面。您還可以使用Visual Studio中的調(diào)試工具來(lái)識(shí)別和修復(fù)代碼中的錯(cuò)誤。

      >我可以使用Visual Studio和asp.net開(kāi)發(fā)游戲機(jī)游戲嗎?

      >

      雖然在技術(shù)上可以使用Visual Studio和asp.net開(kāi)發(fā)游戲機(jī),但這并不是這些最常見(jiàn)的用例工具。游戲機(jī)游戲開(kāi)發(fā)通常涉及使用專(zhuān)用游戲開(kāi)發(fā)引擎(例如Unity或Unreal Engine),該引擎為游戲機(jī)游戲開(kāi)發(fā)提供了更高級(jí)的工具和功能。但是,您可以使用Visual Studio和ASP.NET來(lái)開(kāi)發(fā)控制臺(tái)游戲的服務(wù)器端組件,例如多人游戲配對(duì)服務(wù)或排行榜系統(tǒng)。>

以上是使用Visual Studio和ASP.NET在一個(gè)小時(shí)內(nèi)構(gòu)建網(wǎng)絡(luò)游戲的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門(mén)話題

Java vs. JavaScript:清除混亂 Java vs. JavaScript:清除混亂 Jun 20, 2025 am 12:27 AM

Java和JavaScript是不同的編程語(yǔ)言,各自適用于不同的應(yīng)用場(chǎng)景。Java用于大型企業(yè)和移動(dòng)應(yīng)用開(kāi)發(fā),而JavaScript主要用于網(wǎng)頁(yè)開(kāi)發(fā)。

如何在JS中與日期和時(shí)間合作? 如何在JS中與日期和時(shí)間合作? Jul 01, 2025 am 01:27 AM

JavaScript中的日期和時(shí)間處理需注意以下幾點(diǎn):1.創(chuàng)建Date對(duì)象有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設(shè)置時(shí)間信息可用get和set方法,注意月份從0開(kāi)始;3.手動(dòng)格式化日期需拼接字符串,也可使用第三方庫(kù);4.處理時(shí)區(qū)問(wèn)題建議使用支持時(shí)區(qū)的庫(kù),如Luxon。掌握這些要點(diǎn)能有效避免常見(jiàn)錯(cuò)誤。

為什么要將標(biāo)簽放在的底部? 為什么要將標(biāo)簽放在的底部? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScript與Java:開(kāi)發(fā)人員的全面比較 JavaScript與Java:開(kāi)發(fā)人員的全面比較 Jun 20, 2025 am 12:21 AM

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)

什么是在DOM中冒泡和捕獲的事件? 什么是在DOM中冒泡和捕獲的事件? Jul 02, 2025 am 01:19 AM

事件捕獲和冒泡是DOM中事件傳播的兩個(gè)階段,捕獲是從頂層向下到目標(biāo)元素,冒泡是從目標(biāo)元素向上傳播到頂層。1.事件捕獲通過(guò)addEventListener的useCapture參數(shù)設(shè)為true實(shí)現(xiàn);2.事件冒泡是默認(rèn)行為,useCapture設(shè)為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委托,提高動(dòng)態(tài)內(nèi)容處理效率;5.捕獲可用于提前攔截事件,如日志記錄或錯(cuò)誤處理。了解這兩個(gè)階段有助于精確控制JavaScript響應(yīng)用戶操作的時(shí)機(jī)和方式。

JavaScript:探索用于高效編碼的數(shù)據(jù)類(lèi)型 JavaScript:探索用于高效編碼的數(shù)據(jù)類(lèi)型 Jun 20, 2025 am 12:46 AM

javascripthassevenfundaMentalDatatypes:數(shù)字,弦,布爾值,未定義,null,object和symbol.1)numberSeadUble-eaduble-ecisionFormat,forwidevaluerangesbutbecautious.2)

JavaScript模塊上的確定JS綜述:ES模塊與COMPORJS JavaScript模塊上的確定JS綜述:ES模塊與COMPORJS Jul 02, 2025 am 01:28 AM

ES模塊和CommonJS的主要區(qū)別在于加載方式和使用場(chǎng)景。1.CommonJS是同步加載,適用于Node.js服務(wù)器端環(huán)境;2.ES模塊是異步加載,適用于瀏覽器等網(wǎng)絡(luò)環(huán)境;3.語(yǔ)法上,ES模塊使用import/export,且必須位于頂層作用域,而CommonJS使用require/module.exports,可在運(yùn)行時(shí)動(dòng)態(tài)調(diào)用;4.CommonJS廣泛用于舊版Node.js及依賴(lài)它的庫(kù)如Express,ES模塊則適用于現(xiàn)代前端框架和Node.jsv14 ;5.雖然可混合使用,但容易引發(fā)問(wèn)題

See all articles