国产午夜福利在线观看红一片,久久精品国产再热青青青,又硬又粗又大一区二区三区视频,中文字幕乱码免费,久久超碰97文字幕 ,中国精学生妹品射精久久

最新更新最新專題

您的位置:首頁(yè) > ppt下載 > PPT課件 > 課件PPT > 游戲開(kāi)發(fā)流程ppt

游戲開(kāi)發(fā)流程ppt下載

素材大小:
2 MB
素材授權(quán):
免費(fèi)下載
素材格式:
.ppt
素材上傳:
lipeier
上傳時(shí)間:
2020-01-02
素材編號(hào):
248752
素材類別:
課件PPT

素材預(yù)覽

游戲開(kāi)發(fā)流程ppt

這是游戲開(kāi)發(fā)流程ppt,包括了手機(jī)游戲開(kāi)發(fā)簡(jiǎn)介,PNG圖像格式介紹,游戲設(shè)計(jì)中的動(dòng)畫,手機(jī)游戲2D動(dòng)畫開(kāi)發(fā),手機(jī)音效開(kāi)發(fā),綜合示例:飛機(jī)碰撞,小結(jié)等內(nèi)容,歡迎點(diǎn)擊下載。

游戲開(kāi)發(fā)流程ppt是由紅軟PPT免費(fèi)下載網(wǎng)推薦的一款課件PPT類型的PowerPoint.

第7章 手機(jī)游戲開(kāi)發(fā) 游戲是策劃、美工和程序三者的協(xié)調(diào)及創(chuàng)意和商業(yè)運(yùn)作的平衡。集美術(shù)、音樂(lè)、動(dòng)畫、人工智能等元素于一身。 目前支持Java的手機(jī)性能越來(lái)越強(qiáng)大,同時(shí),手機(jī)的價(jià)格在不斷地下降,因此,手機(jī)游戲的市場(chǎng)前景將是非常良好的。本章將從圖片的處理、動(dòng)畫的制作和音效的實(shí)現(xiàn)來(lái)學(xué)習(xí)手機(jī)游戲開(kāi)發(fā)的基礎(chǔ)知識(shí)。 7.1 手機(jī)游戲開(kāi)發(fā)簡(jiǎn)介 現(xiàn)在的移動(dòng)電話可以看作小型的計(jì)算機(jī),只是它的處理能力與PC相比很有限,但是足夠運(yùn)行一個(gè)小型的游戲。 另一個(gè)特性就是它們還是網(wǎng)絡(luò)計(jì)算機(jī),能夠高速發(fā)送和接收數(shù)字?jǐn)?shù)據(jù)。 除了語(yǔ)音數(shù)據(jù)以外,它們還可以發(fā)送和接收其他類型的數(shù)據(jù)。 所以類似《傳奇》、《千年》這樣的網(wǎng)絡(luò)游戲?qū)?lái)也可以在手機(jī)上實(shí)現(xiàn)。 但是與PC相比,它們的輸入和顯示功能也很有限。手機(jī)的屏幕都較小,其對(duì)聲音處理能力也很有限。 開(kāi)發(fā)者在這樣的平臺(tái)上開(kāi)發(fā)應(yīng)用,必須認(rèn)真的考慮這些特點(diǎn)。本節(jié)將重點(diǎn)討論手機(jī)本身的特點(diǎn)和手機(jī)游戲開(kāi)發(fā)的特點(diǎn)。 7.1.1 手機(jī)游戲的類型 1.嵌入式游戲 2.短信息服務(wù)游戲 3.WAP瀏覽器游戲 7.1.2 手機(jī)游戲開(kāi)發(fā)特點(diǎn) 1.龐大的潛在用戶群 2.便攜性 3.屏幕小 4.有限的顏色和聲音支持 5.應(yīng)用程序大小限制 6.高等待時(shí)間 7.可中斷性是關(guān)鍵 7.1.3 揚(yáng)長(zhǎng)避短的手機(jī)游戲開(kāi)發(fā) 1.縮短每回合的游戲時(shí)間 2.合理處理等待時(shí)間 7.2 PNG圖像格式介紹 7.2.1 PNG的由來(lái) PNG全名Portable Network Graphics,字面意思是“可移植性網(wǎng)絡(luò)用圖形”,從這簡(jiǎn)單幾個(gè)字已經(jīng)明白定義了PNG的用途以及主要發(fā)展方向。 1996年,PNG Group向W3C(World Wide Web Consortium)提出一種多媒體圖形格式,重點(diǎn)在于改進(jìn)現(xiàn)有JPG跟GIF的缺點(diǎn),并且提供更多新的概念與壓縮模式,在提出后得到W3C的認(rèn)可與推薦。 在1996年10月1號(hào),W3C正式發(fā)函公告,推薦PNG為最佳的圖形格式,并且以“PNG Delivers Higher Quality Graphics for Web Page Design”的文字作為該文件的標(biāo)頭。 7.2.2 PNG的圖檔格式特性 PNG保留了大部分GIF的特性, PNG的壓縮率很高,尤其是圖表型的圖片 7.2.3 PNG格式圖像的壓縮及處理 PNG圖像格式文件(或者稱為數(shù)據(jù)流)由一個(gè)8字節(jié)的PNG文件署名(PNG file signature)域和按照特定結(jié)構(gòu)組織的3個(gè)以上的數(shù)據(jù)塊(chunk)組成。 PNG定義了兩種類型的數(shù)據(jù)塊,一種是稱為關(guān)鍵數(shù)據(jù)塊(critical chunk),這是標(biāo)準(zhǔn)的數(shù)據(jù)塊,另一種叫做輔助數(shù)據(jù)塊(ancillary chunks),這是可選的數(shù)據(jù)塊。 7.2.4 使用PNG圖片 在MIDP具體實(shí)現(xiàn)中,Images可以是可變的也可以是不可變的。 不可變的Image可以從二進(jìn)制圖像文件創(chuàng)建,如果要用二進(jìn)制圖像數(shù)據(jù)來(lái)創(chuàng)建Image,這些數(shù)據(jù)必須是設(shè)備支持的格式。 有的設(shè)備可能會(huì)支持額外的一些格式,不過(guò)所有設(shè)備都必須支持PNG格式。在手機(jī)中使用PNG圖片,必須先把圖片加載到內(nèi)存,并且實(shí)例化成為一個(gè)Image對(duì)象。 Image對(duì)象的構(gòu)造方法如下: public static Image createImage(String name) 7.2.5 游戲菜單制作 當(dāng)玩家在菜單項(xiàng)中選擇了某選項(xiàng)后,系統(tǒng)給玩家返回的界面應(yīng)該不同。 下例菜單選項(xiàng)包括:新游戲、高分榜、幫助和退出。其他屏幕包括:游戲中的界面、查看高分榜的界面、查看幫助的界面。 7.3 游戲設(shè)計(jì)中的動(dòng)畫 7.3.1 動(dòng)畫基礎(chǔ) 1.什么是動(dòng)畫 動(dòng)畫是通過(guò)連續(xù)播放一系列畫面,給人的視覺(jué)造成連續(xù)變化的圖畫。 2.動(dòng)畫制作應(yīng)注意的問(wèn)題 (1)速度的處理 (2)循環(huán)動(dòng)畫 (3)夸張與擬人 7.3.2 雙緩沖技術(shù) 雙緩沖技術(shù)是編寫J2ME游戲程序的關(guān)鍵技術(shù)之一。實(shí)際上,雙緩沖技術(shù)是計(jì)算機(jī)動(dòng)畫的一項(xiàng)傳統(tǒng)技術(shù)。 造成屏幕閃爍的主要原因在于,畫面在顯示的同時(shí),程序又在改變它。解決辦法就是在內(nèi)存中開(kāi)辟一片區(qū)域作為后臺(tái)畫面,程序?qū)λ隆⑿薷,完成后再顯示它。 這樣被顯示的圖像永遠(yuǎn)是已經(jīng)完全畫好的圖像,程序修改的將不是正在被顯示的圖像。當(dāng)然還有其他方法可以解決屏幕閃爍問(wèn)題,但使用雙緩沖技術(shù)是一種值得推薦的解決方案。 雙緩沖思想體現(xiàn)在程序上就是要依次完成以下幾步工作。 (1)定義一個(gè)Graphics對(duì)象bg和一個(gè)Image對(duì)象buf,按屏幕大小建立一個(gè)緩沖對(duì)象附給buf,然后取得buf的Graphics對(duì)象附給bg。 (2)在bg(緩沖屏幕)上用drawImage()和drawString等語(yǔ)句畫圖,相當(dāng)于在緩沖屏幕上畫圖。 (3)調(diào)用repaint()語(yǔ)句,它的功能是告知系統(tǒng)調(diào)用paint()來(lái)完成真實(shí)屏幕的顯示。 (4)在paint(Graphics g)方法里,將buf(緩沖屏幕上的圖片)畫到真實(shí)屏幕上。 7.3.3 圖片的裁剪 我們可以通過(guò)設(shè)定裁剪的區(qū)域來(lái)顯示圖片的一個(gè)片斷,使用前面講的方法: setClip() getClipX() getClipY() getClipWidth() getClipHeight() 創(chuàng)建裁剪區(qū)域的步驟如下。 (1)聲明類的引用。 (2)創(chuàng)建類的實(shí)例,并賦值給這些類引用。 (3)當(dāng)程序開(kāi)始時(shí),顯示Canvas類的實(shí)例。 (4)當(dāng)Exit時(shí),終止MIDlet。 (5)定義Canvas的派生類,并實(shí)現(xiàn)CommandListener。 (6)請(qǐng)求保存圖片所需的足夠內(nèi)存塊。如果使用動(dòng)態(tài)圖像,就創(chuàng)建圖像。否則確定圖像包含什么靜態(tài)圖片文件名。 (7)從Paint()方法中判斷圖像是否創(chuàng)建成功或者圖像是否打開(kāi)成功。如果是創(chuàng)建一個(gè)新的裁剪區(qū)域,在畫布上繪制圖像。 7.3.4 播放動(dòng)畫框架 開(kāi)發(fā)MIDP的程序員經(jīng)常會(huì)在一個(gè)MIDlet上顯示動(dòng)畫。MIDP 1.0沒(méi)有直接提供對(duì)動(dòng)畫的支持(正在開(kāi)發(fā)中的MIDP 2.0支持),但真要是自己去實(shí)現(xiàn),其實(shí)也并非是一件很難的事。 任何動(dòng)畫的最基本的前提,是要在足夠快的時(shí)間內(nèi)顯示和更換一張張的圖片,讓人的眼睛看到動(dòng)的畫面效果。圖片必須按照順序畫出來(lái)。 從一張圖片到下一張圖片之間的變化越小,效果會(huì)越好。首先要做的,是使用你的圖片處理軟件(比如Photoshop或者Firework)創(chuàng)建一系列相同大小的圖片來(lái)組成動(dòng)畫。 每張圖片代表動(dòng)畫一幀。你需要制作一定數(shù)量的幀——越多的幀會(huì)讓你的動(dòng)畫看上去越平滑。制作好的圖片一定要保存成PNG格式。 有兩個(gè)辦法讓你剛做好的圖片在MIDlet上變成動(dòng)畫。第一,把圖片都放到一個(gè)Web服務(wù)器上,讓MIDlet下載他們,MIDP內(nèi)置的HTTP支持。 第二個(gè)辦法更簡(jiǎn)單,把圖片用MIDlet打包成JAR文件。如果你使用的是J2ME開(kāi)發(fā)工具,把PNG文件放到你的項(xiàng)目文件里面就可以了。 動(dòng)畫的過(guò)程其實(shí)更像賬本記錄:顯示當(dāng)前幀,然后適當(dāng)?shù)馗鼡Q到下一幀。 7.4 手機(jī)游戲2D動(dòng)畫開(kāi)發(fā) 7.4.1 MIDP 2.0 2D游戲開(kāi)發(fā) MIDP 2.0相對(duì)于1.0來(lái)說(shuō),最大的變化就是新添加了用于支持游戲的API,它們被放在javax.microedition.lcdui.game 包中。 游戲API包提供了一系列針對(duì)無(wú)線設(shè)備的游戲開(kāi)發(fā)類。 由于無(wú)線設(shè)備僅有有限的計(jì)算能力,因此許多API的目的在于提高Java游戲的性能,并且把原來(lái)很多需要手動(dòng)編寫的代碼如屏幕雙緩沖、圖像剪裁等都交給API間接調(diào)用本地代碼來(lái)實(shí)現(xiàn)。 各廠家有相當(dāng)大的自由來(lái)優(yōu)化它們。游戲API使用了MIDP的低級(jí)圖形類接口(Graphics,Image等)。整個(gè)游戲包僅有5個(gè)Class。 1.GameCanvas 2.Layer 3.LayerManager 4.Sprite 5.TiledLayer 7.4.2 GameCanvas的使用 GameCanvas類提供了基本的游戲用戶接口。 除了從Canvas 繼承下來(lái)的特性(命令,輸入事件等)以外,它還提供了專門針對(duì)游戲的功能,如后備屏幕緩沖和鍵盤狀態(tài)查詢的能力。每個(gè)GameCanvas 實(shí)例都會(huì)有一個(gè)唯一的緩沖區(qū)。 1.繪圖 2.鍵盤 7.4.3 Sprite的使用 Sprite 是一個(gè)基本的可視元素,可以用存儲(chǔ)在圖像中的一幀或多幀來(lái)渲染它;輪流顯示不同的幀可以令Sprite 實(shí)現(xiàn)動(dòng)畫。 翻轉(zhuǎn)、旋轉(zhuǎn)等幾種變換方式也能應(yīng)用于Sprite 使其外觀改變。作為L(zhǎng)ayer 子類,Sprite 的位置可以改變,并且還能設(shè)置其可視與否。 1.Sprite 幀 用于渲染Sprite的原始幀由一個(gè)單獨(dú)的Image對(duì)象提供,此Image可以是可變的,也可以是不可變的。 2.幀序列 Sprite 的幀序列定義了幀以什么樣的順序來(lái)顯示。 3.Reference Pixel 作為L(zhǎng)ayer 的一個(gè)子類,Sprite 繼承了很多方法來(lái)設(shè)置和獲取位置,如setPosition(x,y),getX()和getY()。 4.Sprite 的變換 幾種變換可應(yīng)用于Sprite?捎玫淖儞Q包括旋轉(zhuǎn)幾個(gè)90 度加上鏡像(沿垂直軸)。 7.4.4 碰撞檢測(cè) Sprite 非常適合移動(dòng)的物體,如游戲主角、敵人等,在游戲中,可以使用Sprite 提供的碰撞檢測(cè)功能來(lái)簡(jiǎn)化游戲邏輯。 Sprite的碰撞檢測(cè)可以分兩種:一種是矩形碰撞檢測(cè),另一種是像素碰撞檢測(cè)。游戲中Sprite的大小往往是用包圍它的矩形的大小來(lái)表示的,如在圖7-12中的飛機(jī)和導(dǎo)彈并沒(méi)有發(fā)生碰撞但檢查的結(jié)果卻發(fā)生了碰撞。 對(duì)于像素碰撞檢測(cè),往往把Sprite的背景色設(shè)置為相同的顏色,碰撞檢查的時(shí)候就只判斷兩個(gè)圖片除背景色以外的其他像素是否發(fā)生了重疊。 像素碰撞檢測(cè)比較精確,但計(jì)算復(fù)雜,一般沒(méi)有特殊要求都使用矩形碰撞檢測(cè)。下面的例子兩個(gè)矩形發(fā)生了碰撞但飛機(jī)和導(dǎo)彈并沒(méi)有發(fā)生碰撞,如圖7-13所示。 要判斷兩個(gè)Sprite 是否碰撞,或者與其他Layer 是否碰撞,可以使用collidesWith()方法。CollidesWith()共有三種形式: (1)public final boolean collidesWith(Sprite s,Boolean pixelLevel) (2)public final boolean collidesWith(TitledLayer t,Boolean pixelLevel) (3)public final boolean collidesWith(Image image,int x,int y,Boolean pixelLevel) 7.4.5 Layer的使用 Layer 是一個(gè)抽象類,表示游戲中的一個(gè)可視元素。 1.TiledLayer TiledLayer 由一系列單元格組成,單元格可被一組貼圖填充。 每個(gè)貼圖都被賦予一個(gè)唯一的索引號(hào)。 除了靜態(tài)貼圖外,開(kāi)發(fā)者同樣能夠定義一系列動(dòng)態(tài)貼圖(animated tiles)。 動(dòng)態(tài)貼圖允許開(kāi)發(fā)者能非常容易地改變一組單元格的外觀。 2.LayerManager LayerManager管理一系列的Layer。 可視窗口(view window)控制著可視區(qū)域及其在LayerManager 的坐標(biāo)系統(tǒng)中的位置。 paint(Graphics, int, int)方法包含一個(gè)(x,y)坐標(biāo),控制可視窗口在屏幕中的顯示位置。 為了添加一個(gè)Layer,使用append()方法向這個(gè)LayerManager 添加一個(gè)Layer。 7.5 手機(jī)音效開(kāi)發(fā) 現(xiàn)在能播放音樂(lè)的手機(jī)已經(jīng)是很常見(jiàn)的了,同時(shí)手機(jī)游戲也需要聲音來(lái)增加動(dòng)感效果,所以手機(jī)音效也成為了開(kāi)發(fā)熱點(diǎn)。 J2ME針對(duì)多種媒體格式,提供了一套播放接口,那就是:MMAPI(Mobile Media API)。 7.5.1 MMAPI體系結(jié)構(gòu) 現(xiàn)在多媒體的格式很多,要順利地播放這些不同格式的音樂(lè),一種比較好的方式就是把這些不同格式的數(shù)據(jù)都轉(zhuǎn)換為統(tǒng)一的格式,然后統(tǒng)一使用一個(gè)播放器接口類來(lái)播放。 在MMAPI中,首先從數(shù)據(jù)源(如一個(gè)文件、一個(gè)捕獲裝置或一個(gè)流式服務(wù))上讀取媒體數(shù)據(jù)內(nèi)容后,然后傳輸給專門的處理程序進(jìn)行處理。 處理過(guò)程主要是由DataSource類和Player類完成。DataSource類的作用就是讀取和轉(zhuǎn)換多媒體數(shù)據(jù),Player類的作用就是播放這類數(shù)據(jù)。 然后提供一系列的播放、暫停、停止等播放器相關(guān)功能,DataSource類和Player類的工作過(guò)程如圖7-19所示。 7.5.2 Player接口 要使用MMAPI進(jìn)行音效開(kāi)發(fā),首先需要導(dǎo)入相關(guān)的開(kāi)發(fā)包,例如: import javax.microedition.media.* 創(chuàng)建一個(gè)Player對(duì)象有3種不同的方式,也就是用Manager類的不同構(gòu)造方法,Manager類一共有三個(gè)構(gòu)造方。 (1)Public static Player createPlayer (java.lang.string locator) throws java.io.IOException, MediaException (2)Public static Player createPlayer (DataSource source) throws java.io.IOException, MediaException (3) Public static Player createPlayer (java. io.InputStream stream, java.. lang.String trpe) throws java.io.IOException, MediaException 這三個(gè)方法分別可以讀取指定路徑的數(shù)據(jù)源或者DataSource和InpurStream類型的數(shù)據(jù)源,分別返回一個(gè)Player,當(dāng)一個(gè)Player對(duì)象被創(chuàng)建以后,使用Player接口的start()方法就會(huì)盡可能快地啟動(dòng)數(shù)據(jù)的播放,當(dāng)數(shù)據(jù)播放完畢以后,Player會(huì)自動(dòng)關(guān)閉。 1.UNREALIZED 狀態(tài) 2.REALIZED狀態(tài) 3.PREFETCHED狀態(tài) 4.STARTED狀態(tài) 5.CLOSED狀態(tài) 7.5.3 播放簡(jiǎn)單音調(diào) 聲音的高低叫音調(diào),也就是音符的頻率,J2ME提供了對(duì)簡(jiǎn)單音調(diào)播放的支持,MMAPI提供了一個(gè)Manager.playTone()方法來(lái)播放音調(diào)。 使用Manager.playTone(),需要指定三個(gè)參數(shù):音符、播放時(shí)間和聲音的大小。例如下面的代碼播放了一個(gè)C4的音調(diào),C4音調(diào)是由ToneControl類的常量C4指定的。 7.5.4 播放歌曲 使用MMAPI播放歌曲很簡(jiǎn)單,主要是用Player的createPlayer構(gòu)造方法,只要指定網(wǎng)絡(luò)地址,Player就會(huì)自動(dòng)的下載歌曲并播放,具體構(gòu)造方法如下。 public static Player createPlayer(String locator)throws IOException,MediaException 為了很好地控制歌曲的播放狀態(tài),需要MIDlet程序?qū)崿F(xiàn)一個(gè)PlayerListener接口,同時(shí)實(shí)現(xiàn)該接口中的playerUpdate()方法。 public void playerUpdate(Player player,String event,Object eventDate) 在playerUpdate方法里可以判斷播放的狀態(tài),例如判斷播放是否結(jié)束可以用PlayerListener.END_OF_MEDIA進(jìn)行判斷。 public void playerUpdate(Player player,String event,Object eventDate){ if(event == PlayerListener.END_OF_MEDIA){ …… } } 為了提高播放效率,又不影響其他程序的運(yùn)行,可以使用線程,只要實(shí)現(xiàn)Runnable接口即可。 如果想在播放過(guò)程中,對(duì)播放進(jìn)行暫;蛘咄V沟炔僮鳎家獙(duì)播放器的各種狀態(tài)進(jìn)行判斷, 7.5.5 控制音量 音量的控制可以使用VolumeControl控件接口,它允許設(shè)置音量的變化范圍是從0~100,其中0表示靜音。 VolumeControl控件接口的使用很簡(jiǎn)單,使用getLevel()方法得到當(dāng)前的音量級(jí)別,也可以使用setLevel()方法設(shè)置音量級(jí)別,靜音使用setMute()方法來(lái)設(shè)置,要判斷是否靜音可以使用isMute()方法。 具體獲得一個(gè)VolumeControl控件的代碼如下: VolumeControl volume = (VolumeControl) player.getControl("VolumeControl"); volume.setLevel(VOLUME_LEVEL); 7.6 綜合示例:飛機(jī)碰撞 本例子是在背景為星空的屏幕上顯示兩架飛機(jī),通過(guò)手機(jī)的鍵盤可以控制飛機(jī)的相對(duì)位置,當(dāng)兩架飛機(jī)碰撞的時(shí)候可以顯示爆炸。 同時(shí)播放爆炸的聲音。本例用到了前面學(xué)習(xí)過(guò)的動(dòng)畫和音效開(kāi)發(fā)的知識(shí)。由于飛機(jī)的碰撞除了背景還有兩個(gè)飛機(jī)和一個(gè)爆炸圖層,所以使用了一個(gè)LayerManager類來(lái)管理多個(gè)圖層,這樣能很方便的使用碰撞方法。 碰撞的檢測(cè)很簡(jiǎn)單,可以使用collidesWith()方法,如果碰撞該方法返回true。 Sprite plane1,plane2; //使用像素碰撞檢測(cè),如果碰撞該方法返回true Boolean collide = plane1. collidesWith(plane2); …… 當(dāng)發(fā)生碰撞時(shí),把兩個(gè)飛機(jī)設(shè)置為不可見(jiàn),把爆炸的圖片顯示出來(lái),這樣就構(gòu)成了爆炸的場(chǎng)景。 為了具有聲音效果,要有一個(gè)用來(lái)播放音樂(lè)的類PlayMusic,在這個(gè)類里完成讀取和播放音樂(lè)文件的功能。 7.7 小 結(jié) 本章的內(nèi)容很多,主要介紹了PNG格式圖像的由來(lái),詳細(xì)介紹了PNG格式圖像的特性和壓縮處理。 針對(duì)手機(jī)的特點(diǎn),詳細(xì)的給讀者介紹了如何在手機(jī)游戲中使用PNG格式圖像,由于游戲菜單是游戲的一個(gè)必須部分,最后使用范例介紹了游戲菜單的制作。 及在J2ME中如何實(shí)現(xiàn)動(dòng)畫,由于在J2ME中實(shí)現(xiàn)動(dòng)畫要涉及多線程技術(shù),所以詳細(xì)介紹了Java中的線程技術(shù),雙緩存技術(shù)以及圖片的裁剪技術(shù),讓讀者掌握什么是線程及怎樣使用多線程實(shí)現(xiàn)動(dòng)畫。 最后提供了一個(gè)播放動(dòng)畫程序框架。讓讀者對(duì)實(shí)現(xiàn)動(dòng)畫有一個(gè)完整的概念和理解。在最后介紹了手機(jī)音效的開(kāi)發(fā),介紹了如何播放簡(jiǎn)單音調(diào)和歌曲及音量的控制。q9N紅軟基地

PPT分類Classification

Copyright:2009-2024 紅軟網(wǎng) rsdown.cn 聯(lián)系郵箱:rsdown@163.com

湘ICP備2024053236號(hào)-1