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

正文內(nèi)容

學(xué)習(xí)情境3手機(jī)游戲的控制(編輯修改稿)

2025-06-16 01:45 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 top()或 destroy()方法也可使線程停止,但會(huì)產(chǎn)生異常,且不會(huì)釋放同步資源,所以不推薦使用。 要點(diǎn)提示 3:線程的控制 在 run()方法中,線程通常使用一個(gè) while循環(huán)來(lái)控制。在循環(huán)的開(kāi)始,獲取一次循環(huán)的開(kāi)始時(shí)間( st)。循環(huán)的最后,獲取本次循環(huán)的結(jié)束時(shí)間( et)。如果結(jié)束時(shí)間和開(kāi)始時(shí)間的差值( diff=etst),小于每一幀的指定時(shí)間( rate),就讓線程休眠一個(gè)( ratediff)的差值時(shí)間。這樣可以強(qiáng)制使每一幀運(yùn)行時(shí)間固定,避免游戲產(chǎn)生忽快忽慢的晃動(dòng)感覺(jué)。 任務(wù)四:實(shí)現(xiàn)游戲時(shí)間的倒計(jì)時(shí) 知識(shí)提煉:脫屏畫(huà)布 脫屏畫(huà)布其實(shí)就是通常所說(shuō)的繪制雙緩沖區(qū)技術(shù),是計(jì)算機(jī)動(dòng)畫(huà)的一項(xiàng)傳統(tǒng)技術(shù)。 在動(dòng)畫(huà)制作中,造成屏幕閃爍的主要原因在于,畫(huà)面在顯示動(dòng)畫(huà)的同時(shí),程序又在改變它。如何解決這個(gè)矛盾呢?通常的做法是在內(nèi)存開(kāi)辟一片區(qū)域作為后臺(tái)畫(huà)面,程序?qū)λM(jìn)行更新、修改,完成后再在屏幕上顯示它。 創(chuàng)建、使用脫屏畫(huà)布的關(guān)鍵步驟如下: ( 1) 創(chuàng)建脫屏畫(huà)布 Image buffer。 buffer=(SCREENWIDTH,SCREENHEIGHT)。 ( 2) 獲取脫屏畫(huà)筆 Graphics offG=()。 ( 3) 改變脫屏畫(huà)布內(nèi)容 ()。 ( 4) 將脫屏畫(huà)布內(nèi)容顯示到屏幕上 (buffer,0,0,|)。 任務(wù)五: 控制游戲的開(kāi)始、暫停、繼續(xù)、重玩和返回 游戲進(jìn)行中 游戲暫停 游戲結(jié)束 要點(diǎn)提示 游戲的運(yùn)行與停止、暫停與繼續(xù),分別通過(guò)一個(gè)開(kāi)關(guān)變量來(lái)控制。在程序中,使用了 boolean型變量 isRun表示游戲是否進(jìn)行中,變量 isPause表示游戲是否暫停。 在 run()方法中,使用 isRun變量作為 while循環(huán)的條件,當(dāng)游戲沒(méi)有暫停的時(shí)候( !isPause),實(shí)現(xiàn)正常的游戲功能。當(dāng)按下“暫停”按鈕時(shí),設(shè)置 isPause變量的值為 true。此時(shí) while循環(huán)中的 if (!isPause)條件就不再成立,下面的語(yǔ)句也就不再執(zhí)行。但 while循環(huán)還在繼續(xù),線程并沒(méi)有結(jié)束。當(dāng)按下“繼續(xù)”按鈕時(shí), isPause變量的值又變?yōu)?false, if (!isPause)條件成立,繼續(xù)游戲。 當(dāng) gameTime變量小于等于 0時(shí),設(shè)置 isRun變量值為 false,此時(shí) while循環(huán)結(jié)束,線程也隨之停止,游戲結(jié)束,顯示“重玩”按鈕。 當(dāng)按下“重玩”按鈕時(shí),調(diào)用 init()方法重新初始化游戲,重新開(kāi)始線程。 知識(shí)拓展:了解 MIDlet的生命周期 Java應(yīng)用管理器( JAM)是管理 Java應(yīng)用的機(jī)制,它負(fù)責(zé)將MIDlet裝載進(jìn)來(lái),生成一個(gè) MIDlet對(duì)象實(shí)例。該對(duì)象的生命周期完全由 JAM控制。 MIDlet應(yīng)用程序的構(gòu)造方法僅被 JAM調(diào)用一次,開(kāi)發(fā)人員不能通過(guò) new方法隨時(shí)調(diào)用。通常將需要在程序啟動(dòng)時(shí)執(zhí)行一次且只執(zhí)行一次的操作放在構(gòu)造方法中,用來(lái)初始化 MIDlet狀態(tài)。一個(gè) MIDle對(duì)象有三種狀態(tài):運(yùn)行狀態(tài)、暫停狀態(tài)和終止?fàn)顟B(tài)。 MIDlet類(lèi)中聲明了三個(gè)抽象方法: ? startApp():用于啟動(dòng)或重新啟動(dòng)一個(gè) MIDlet。該方法可以被系統(tǒng)在任何時(shí)候調(diào)用,其目的是請(qǐng)求或重新請(qǐng)求運(yùn)行 MIDlet所需要的資源。 ? pauseApp():用于暫停一個(gè) MIDlet的運(yùn)行,以釋放此 MIDlet占用的資源而用于其他 MIDlet的運(yùn)行。 ? destroyApp():在 MIDlet即將被撤消時(shí)由系統(tǒng)調(diào)用,也可由MIDlet自身間接調(diào)用,其目的是在 MIDlet撤消前釋放該 MIDlet所占資源 需要說(shuō)明的是,這三個(gè)方法體默認(rèn)都是空的,想要實(shí)現(xiàn)開(kāi)始、暫停和釋放資源的功能,需要用戶自行添加相應(yīng)的功能代碼。 JAM通過(guò)調(diào)用 startApp()使 MIDlet進(jìn)入開(kāi)始狀態(tài),調(diào)用pauseApp()使 MIDlet進(jìn)入暫停狀態(tài),調(diào)用 destroyApp()使MIDlet進(jìn)入終止?fàn)顟B(tài)。需要說(shuō)明的是,這三個(gè)方法體默認(rèn)都是空的,想要實(shí)現(xiàn)開(kāi)始、暫停和釋放資源的功能,需要用戶自行添加相應(yīng)的功能代碼。 MIDlet類(lèi)中還定義了 notify系列函數(shù),用于請(qǐng)求狀態(tài)的轉(zhuǎn)換。 ? notifyPaused(): MIDlet可以使用該方法通知 JAM, MIDlet對(duì)象將自動(dòng)進(jìn)入暫停狀態(tài)。 ? resumeRequest():調(diào)用該方法可以使 MIDlet對(duì)象從暫停狀態(tài)重新進(jìn)入激活狀態(tài)。調(diào)用該方法時(shí),應(yīng)用程序一般處于暫停狀態(tài),但即使處在暫停狀態(tài)的應(yīng)用程序也可以處理異步事件,比如定時(shí)器 timer。 ? notifyDestroyed():該方法通知 MIDlet對(duì)象已經(jīng)釋放了所有資源,并已將緩沖區(qū)數(shù)據(jù)保存到了永久存儲(chǔ)記錄中,已經(jīng)進(jìn)入中止?fàn)顟B(tài)。通常在調(diào)用該方法前,先調(diào)用 destroyApp()方法,在該方法體中完成清除工作。 高品質(zhì)的游戲依
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1