freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java游戲開(kāi)發(fā)從零開(kāi)始開(kāi)發(fā)貪吃蛇、電梯模擬游戲全-資料下載頁(yè)

2025-08-01 17:20本頁(yè)面
  

【正文】 樓層地板。 應(yīng)用升級(jí) ? 問(wèn)題陳述: ? 在電梯系統(tǒng)的類(lèi)比程式裡,公司要求圖形化地顯示執(zhí)行過(guò)程,在適當(dāng)時(shí)刻,螢?zāi)粦?yīng)顯示一個(gè)人走向電梯,按下一個(gè)按鈕,然後進(jìn)入電梯,乘坐電梯,最後走出電梯。該圖形還應(yīng)顯示電梯的移動(dòng)、門(mén)的大開(kāi)、指示燈的開(kāi)和關(guān)、按下和重定按鈕式的亮暗變化。 ? 希望獲得的介面如下: 電梯模擬遊戲場(chǎng)景圖 Java遊戲開(kāi)發(fā)(貪吃蛇、模擬電梯遊戲) 學(xué)習(xí)情境 5:音樂(lè)播放機(jī)設(shè)計(jì) 08遊戲 32 目標(biāo)與任務(wù) 目標(biāo): ? 為遊戲添加音效,能夠用 Java載入、播放遊戲中的音效檔,並按要求控制播放。 任務(wù): ? 用 Java設(shè)計(jì)一個(gè)播放多種聲音的程式。為電梯類(lèi)比遊戲添加背景音樂(lè)。 學(xué)習(xí)過(guò)程 項(xiàng)目核心 功能擴(kuò)展 應(yīng)用升級(jí) 教師 學(xué)生 提供: 聲音播放案例 模仿完成: 聲音播放案例 提供: 多個(gè)聲音列表 播放關(guān)鍵代碼 協(xié)作完成: 多個(gè)聲音列表 播放 提供: 電梯遊戲的 聲音和介面 協(xié)作完成: 電梯遊戲的 音效處理 Java支援的音訊檔案格式 ?AU檔案格式 ?WAV檔案格式 ?AIFF檔案格式 ?MIDI檔案格式 音效檔有很多格式 AU音效檔 這是 Java語(yǔ)言最早的聲音格式,副檔名為 AU戒 SND,適用於短的音效檔。AU類(lèi)型檔使用的三種典型音訊格式為:8位元單聲道採(cǎi)樣頻率為 8KHz的 μ law類(lèi)型、 8位元線性類(lèi)型以及 16位元線性類(lèi)型。 WAV音效檔 副檔名為 WAV,由 Microsoft和IBM共同開(kāi)發(fā), Windows9X系統(tǒng)都支援此格式。 AIFF音效檔 副檔名為 AIF戒 IEF,是Macintosh公司和 SGI公司所共用的標(biāo)準(zhǔn)音頻檔案格式。 MIDI音效檔 副檔名為 MID,是音樂(lè)製造業(yè)所認(rèn)可的標(biāo)準(zhǔn),主要用於控制諸如合成器和音效卡之類(lèi)的設(shè)備 。 Java2平臺(tái)支援三種類(lèi)型的MIDI檔公式,它們分別為 MIDI檔案類(lèi)型 O、MIDI檔案類(lèi)型 1以及 RMF。 與聲音處理有關(guān)的包和類(lèi) ? ? ? ? ? ? ,為 I/O、序列化和 MIDI資料的合成提供介面和類(lèi)。 ? ,為新 MIDI設(shè)備、MIDI檔閱讀器和編寫(xiě)器等的實(shí)現(xiàn)提供介面。 ,為捕獲、處理和播放音訊資料提供介面和類(lèi)。 ? ,為新音訊設(shè)備、音效檔閱讀器和編寫(xiě)器或音訊格式轉(zhuǎn)換提供抽象類(lèi)別。 與聲音處理有關(guān)的包和類(lèi) 在 Applet類(lèi)播放聲音 ? 使用 play()方法裝載與播放聲音。格式如下: void play(URL url) void play(URL url,String name) ? 一旦 play()方法裝載了音效檔就立即播放。如果找不到, play()方法不返回出錯(cuò)資訊,反應(yīng)到使用者端就是聽(tīng)不到聲音。 ? play()方法只播放一遍音效檔 重複播放聲音 ?如果需要重複播放某個(gè)音效檔,就需要使用AudioClip介面提供的方法。 ?AudioClip介面提供播放聲音片段的方法。 ?多個(gè) AudioClip項(xiàng)可以在同一時(shí)間播放,從而產(chǎn)生聲音混合的效果。 項(xiàng)目核心 ?一個(gè)基本的使用 Applet類(lèi)提供的方法播放音效檔的例子 , 運(yùn)行結(jié)果如圖所示: 步驟一:創(chuàng)建一個(gè) Applet小程式 ? (1)通過(guò)繼承 Applet類(lèi)來(lái)創(chuàng)建一個(gè)有三個(gè)按鈕的容器 ? import .*。 ? public class mAudio extends Applet{} ? (2)定義成員屬性 ? 包含 3個(gè)成員屬性,分別表示播放的聲音的URL相對(duì)位址,當(dāng)前播放的音訊流和聲音播放狀態(tài)。 步驟一:創(chuàng)建一個(gè) Applet小程式 ? (3)在 Applet的子類(lèi)中覆蓋 Applet類(lèi)的init()方法 ? init()是 ,當(dāng) applet程式首次被打開(kāi)時(shí),會(huì)執(zhí)行此方法定義的程式碼。當(dāng) applet程式首次被打開(kāi)時(shí),init()將第一個(gè)被自動(dòng)執(zhí)行。 ? 在其中調(diào)用 getAudioClip來(lái)初始化當(dāng)前要播放的音訊流: ? audio=getAudioClip(new URL(getDocumentBase(),hurl))。 步驟二:對(duì) Applet容器中的按鈕動(dòng)作進(jìn)行事件處理 ? (1)為 Applet容器添加按鈕動(dòng)作監(jiān)聽(tīng)器 ? 由於要對(duì) Applet容器中發(fā)生的三種按鈕按下事件進(jìn)行分別回應(yīng),可以直接在 ? init()方法中對(duì)三個(gè)按鈕添加語(yǔ)句: ? addActionListener(this)。 ? ( 2)實(shí)現(xiàn) ActionListener介面 ? public class mAudio extends Applet implements ActionListener{ ? public void actionPerformed(ActionEvent e) { ? … } ? } 步驟一:創(chuàng)建一個(gè) Applet小程式 ? 這裡需要根據(jù)事件源即按鈕的不同作出分別動(dòng)作,可以通過(guò) ()來(lái)判斷是哪個(gè)按鈕被按下。 ? AudioClip類(lèi)中的 play,stop,loop方法分別對(duì)應(yīng)播放、停止和迴圈播放功能。 功能擴(kuò)展 ? 在上面程式的基礎(chǔ)上要求增加一套按鈕用於播放另一個(gè)音樂(lè) , 2個(gè)音樂(lè)可以同時(shí)播放 , 製造一種混音效果 。 運(yùn)行情況如下: 擴(kuò)展步驟一:增加一套按鈕 ? 定義令一組成員屬性 ? 包含新的 3個(gè)成員屬性,分別表示播放的第二段聲音的 URL相對(duì)位址,當(dāng)前播放的音訊流和聲音播放狀態(tài)。 改寫(xiě) init()方法 ? 在其中調(diào)用 getAudioClip來(lái)初始化另一個(gè)要播放的音訊流: ? Audio2=getAudioClip(new URL(getDocumentBase(),hurl2))。 ? 並且添加一套新按鈕,重新佈局。 擴(kuò)展步驟二:對(duì) Applet容器中的按鈕重新進(jìn)行事件處理 ? 為 Applet容器中的新按鈕添加事件監(jiān)聽(tīng)器 ? 由於要對(duì) Applet容器中發(fā)生的三種按鈕按下事件進(jìn)行分別回應(yīng),可以直接在 ? init()方法中對(duì)三個(gè)按鈕添加語(yǔ)句: ? addActionListener(this)。 ? ( 4)實(shí)現(xiàn) ActionListener介面,在 actionPerformed方法中對(duì)六個(gè)事件源作出相應(yīng) ? public class mAudio extends Applet implements ActionListener{ ? public void actionPerformed(ActionEvent e) { ? … } ? } 完成情況評(píng)價(jià)標(biāo)準(zhǔn) ? 完成 ( 1) ( 4) , 得到最終結(jié)果的正確輸出 ,100分 。 ? 完成( 1) ( 3),正確生成菜單, 80分。 ? 完成( 1) ( 2),正確生成菜單, 60分。 功能擴(kuò)展之案例二 ? 編寫(xiě)一個(gè) applet讓用戶(hù)從幾個(gè)音訊片段中選擇來(lái)播放 , 程式運(yùn)行畫(huà)面如下: 功能擴(kuò)展之案例二 ? //程式中聲音的名字 ? public final String[] AUDIO = ? { ping, pop, return, salvation, shuffle, squish }。 ? //包含上述字串陣列的下拉清單 ? private Choice choice。 ? //真實(shí)的音訊片段資料 ? private AudioClip[] clips。 功能擴(kuò)展之案例二 ? //控制播放停止的按鈕 ? private Button playClip。 ? private Button loopClip。 ? private Button stopClip。 ? private Button stopAllClips。 ? //跟蹤當(dāng)前哪些音訊片段在播放 ? private boolean[] clipsPlaying。 應(yīng)用升級(jí) 問(wèn)題陳述: ? 在電梯系統(tǒng)的類(lèi)比程式裡 , 公司要求在模擬中加入聲音 。 例如 , 當(dāng)一個(gè)人走路時(shí) , 應(yīng)能聽(tīng)到腳步聲 。 每當(dāng)按下或者重定一個(gè)樓層按鈕或者電梯按鈕時(shí) , 應(yīng)當(dāng)聽(tīng)到按一下聲 。 電梯到達(dá)時(shí)鈴聲應(yīng)當(dāng)響起 , 且在門(mén)打開(kāi)時(shí)或者關(guān)上時(shí) , 門(mén)應(yīng)當(dāng)吱吱作響 。 最後 , 當(dāng)電梯在樓層間運(yùn)行時(shí) ,應(yīng)播放 “ 電梯音樂(lè) ” 。 應(yīng)用升級(jí) ? 解決思路: ? 編寫(xiě)類(lèi) SoundEffects,將音效檔轉(zhuǎn)換成 關(guān)鍵代碼 try { return ( getClass().getResource( prefix + soundFile ) )。 } // return null if soundFile does not exist catch ( NullPointerException nullPointerException ) { return null。 } } 應(yīng)用升級(jí) ? 類(lèi) SoundEffects包含方法 getAudioClip,該方法通過(guò)參數(shù) soundFiled調(diào)用類(lèi) static方法 .newAudioClip返回一個(gè) AudioClip對(duì)象。方法 setPathPrefix允許改變音效檔的目錄(如果我們需要把聲音分配到多個(gè)目錄中,該方法很有用)。 應(yīng)用升級(jí) ? ( 2) 編寫(xiě)一個(gè)類(lèi) , 通過(guò)播放 AudioClip物件來(lái)產(chǎn)生聲音 。 ( 學(xué)生自主完成 ) Java遊戲開(kāi)發(fā)(貪吃蛇、電梯模擬遊戲) 學(xué)習(xí)情境 6:小蟲(chóng)動(dòng)畫(huà)程式設(shè)計(jì) 08遊戲 32 目標(biāo)與任務(wù) ?目標(biāo): ?用 Java多執(zhí)行緒為遊戲添加動(dòng)畫(huà),掌握多執(zhí)行緒的實(shí)現(xiàn)、控制方法。掌握通過(guò)雙緩衝消除圖像閃爍的方法。 ?任務(wù): ?創(chuàng)建一個(gè)燃燒的火焰動(dòng)畫(huà),為 “ 電梯模擬遊戲 ” 添加人行走,電梯運(yùn)行的動(dòng)畫(huà) 學(xué)習(xí)過(guò)程 項(xiàng)目核心 功能擴(kuò)展 應(yīng)用升級(jí) 教師 學(xué)生 提供: 繪製圖像案例 模仿完成: 繪製圖像案例 提供: 執(zhí)行緒控制圖像 間歇顯示 協(xié)作完成: 執(zhí)行緒控制圖像 間歇顯示成動(dòng)畫(huà) 提供: 電梯遊戲的 動(dòng)畫(huà)和介面 協(xié)作完成: 電梯遊戲的 場(chǎng)景動(dòng)畫(huà)載入 詳細(xì)步驟 ?步驟一:用屏外繪製技術(shù)在一個(gè)表單上顯示圖像 ?步驟二:創(chuàng)建執(zhí)行緒實(shí)現(xiàn)圖像的間歇顯示 ?步驟三:多個(gè)圖形順序顯示形成動(dòng)畫(huà) ?步驟四:為 “ 電梯模擬遊戲 ” 添加人行走,電梯運(yùn)行的動(dòng)畫(huà) ?步驟五:課後創(chuàng)新作業(yè):自主設(shè)計(jì)一個(gè)程式實(shí)現(xiàn):顯示滾動(dòng)的字幕 Java在螢?zāi)簧袭?huà)圖的方法 ? paint, repaint,update,superpaint都可在螢?zāi)簧袭?huà)圖 ? 注意幾個(gè)方法的區(qū)別 repaint superpaint update paint 幾個(gè)方法的區(qū)別 ? paint在當(dāng)前容器中繪製圖形,要這個(gè)類(lèi)中存在這個(gè)方法則自動(dòng)載入。 ? repaint重繪當(dāng)前圖形,會(huì)先執(zhí)行 update中的方法,再執(zhí)行 paint中的方法。 ? update更新當(dāng)前圖形,通過(guò) repaint來(lái)調(diào)用。 ? superpaint是隱式調(diào)用 ,當(dāng)繼承一個(gè)容器後會(huì)自動(dòng)調(diào)用此方法 ,用於顯示當(dāng)前容器中的元件。 屏外繪製緩衝器 ? 前面介紹的技術(shù)都是通過(guò) Graphics2D容器直接把物件繪製到表單上。 ? 屏外緩衝就是創(chuàng)建一個(gè)虛擬的 applet來(lái)緩衝存放將要繪製的圖形。 ? 屏外緩衝繪圖的目的是加快圖形的繪製,消除屏閃。 緩衝螢?zāi)? 真實(shí)螢?zāi)? 項(xiàng)目核心:屏外緩衝繪圖 屏外緩衝繪圖步驟: ? Image memoryimage, pic; //1創(chuàng)建兩個(gè) Image對(duì)象 ,一個(gè)用於屏外繪圖 ,一個(gè)用於屏內(nèi)繪圖 ? Graphicsmemoryg; //2創(chuàng)建一個(gè)屏外繪圖的畫(huà)筆 ? memoryimage = createImage(x,y); //3在記憶體中創(chuàng)建屏外繪圖區(qū)的大小 ? memoryg = ()。 //4獲取屏外繪圖區(qū)的畫(huà)筆 項(xiàng)目核心:屏外緩衝繪圖 繪圖的 paint方法: paint(Graphics g) { (pic,x,y,null)。 //5在記憶體中畫(huà)出 pic物件的圖
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1