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

正文內(nèi)容

[教育學(xué)]二級(jí)課題報(bào)告-文庫(kù)吧資料

2025-04-20 03:44本頁(yè)面
  

【正文】 必再重頭開(kāi)始,這樣玩家就沒(méi)必要抱怨有時(shí)候好不容易快打到關(guān)底的時(shí)候由于失敗而重頭開(kāi)始那些已經(jīng)打了好多次的場(chǎng)面。解決之后我又對(duì)比自己在調(diào)試時(shí)采取的方法,看看自己錯(cuò)在哪里,反復(fù)仔細(xì)看人家代碼,其實(shí)總體思路是一樣的,只是在具體操作時(shí)一個(gè)變量出了點(diǎn)問(wèn)題,就給自己代碼帶來(lái)前進(jìn)不下的困境。首先我很感謝自己的選擇,這是我學(xué)編程以來(lái),第一次接觸游戲開(kāi)發(fā),雖然是小游戲的制作,但其中包含的知識(shí)點(diǎn)并不少,一開(kāi)始對(duì)于這游戲編程一點(diǎn)也不了解,不知道如何下手,一點(diǎn)思路也沒(méi)有,經(jīng)過(guò)三周一點(diǎn)一點(diǎn)的學(xué)習(xí),不敢說(shuō)絕對(duì)的了解,但相對(duì)一開(kāi)始時(shí)有很大的提高,因?yàn)槲覍W(xué)到了很多知識(shí),比如圖形用戶(hù)界面、線性數(shù)組、多媒體音樂(lè)的調(diào)加、碰撞顯示爆炸效果、發(fā)射子彈等等,相信在以后的學(xué)習(xí)中會(huì)更加精通這些知識(shí),運(yùn)用起來(lái)更加熟練。發(fā)牢騷終歸發(fā)牢騷,設(shè)計(jì)爆炸的方法才是當(dāng)務(wù)之急,再后來(lái)我們就設(shè)計(jì)了上面的方法,終于可以達(dá)到爆炸的效果啦。這些總結(jié)也是我們自己的感覺(jué),可能有些地方不符合Java的語(yǔ)法規(guī)則。我們先來(lái)簡(jiǎn)單的說(shuō)說(shuō)paint Component(Graphics g)方法,應(yīng)為在后臺(tái)的周期刷屏中,這個(gè)方法起著至關(guān)重要的地位。在做開(kāi)發(fā)的時(shí)候,經(jīng)常聽(tīng)見(jiàn)其他開(kāi)發(fā)者說(shuō)爆炸的實(shí)現(xiàn)不理想,當(dāng)時(shí)的我還沒(méi)做爆炸這個(gè)任務(wù),也沒(méi)把這個(gè)問(wèn)題放在心上。后來(lái)我是通過(guò)在子彈類(lèi)的內(nèi)部對(duì)相應(yīng)的組合子彈位置坐標(biāo)做了適當(dāng)?shù)男揎棧@樣不管什么時(shí)間調(diào)用子彈的坐標(biāo)都是正確的?,F(xiàn)在我們?cè)賮?lái)說(shuō)說(shuō)哪兩種碰撞方法,因?yàn)椴还苡媚姆N碰撞方法都要調(diào)用當(dāng)前子彈的位置坐標(biāo),現(xiàn)在給大家解釋解釋?zhuān)@個(gè)子彈的位置坐標(biāo)是錯(cuò)誤,所以在碰撞的檢測(cè)算法中就會(huì)根據(jù)這個(gè)錯(cuò)誤的坐標(biāo)進(jìn)行檢測(cè),就會(huì)導(dǎo)致游戲時(shí)的視覺(jué)錯(cuò)位。我之所以把這個(gè)問(wèn)題單列出來(lái),是因?yàn)槲以陂_(kāi)發(fā)的過(guò)程當(dāng)中犯了一個(gè)及其嚴(yán)重的錯(cuò)誤,因?yàn)樽訌楊?lèi)有子彈坐標(biāo)的屬性,在這個(gè)游戲的開(kāi)發(fā)中,我們給玩家提供三種戰(zhàn)機(jī)和四種子彈,學(xué)過(guò)排列組合的看到這大概都能想到一個(gè)問(wèn)題,那就是三種戰(zhàn)機(jī)和四中子彈的組合問(wèn)題。開(kāi)始我們用的是開(kāi)發(fā)系統(tǒng)中現(xiàn)有的矩形碰撞,也用過(guò)物體間的圓心碰撞。對(duì)這兩種監(jiān)聽(tīng)上面也都介紹的很詳細(xì)啦,在這我也就不過(guò)多的解釋啦。其中一個(gè)就是按鍵監(jiān)聽(tīng)的優(yōu)先順序,另一個(gè)就是在發(fā)子彈和戰(zhàn)機(jī)移動(dòng)的同時(shí)監(jiān)聽(tīng)時(shí),這是按鍵監(jiān)聽(tīng)所要完成的任務(wù)就是只需要監(jiān)聽(tīng)一個(gè)按鈕,同時(shí)觸發(fā)戰(zhàn)機(jī)發(fā)子彈和移動(dòng)這兩個(gè)事件。能實(shí)現(xiàn)這個(gè)功能可以說(shuō)不用花費(fèi)多少時(shí)間和精力,只是在后來(lái)的調(diào)試當(dāng)中我們發(fā)現(xiàn)發(fā)子彈和戰(zhàn)機(jī)的移動(dòng)在通過(guò)按鍵監(jiān)聽(tīng)時(shí)是非常不流暢的,為了解決這個(gè)問(wèn)題,最初我們添加了鼠標(biāo)監(jiān)聽(tīng),這才導(dǎo)致后來(lái)的程序也能通過(guò)鼠標(biāo)來(lái)控制戰(zhàn)機(jī)的自由移動(dòng),因?yàn)槭髽?biāo)監(jiān)聽(tīng)和按鍵監(jiān)聽(tīng)互不影響,這樣才能在游戲的過(guò)程中感覺(jué)游戲不是那么的卡。第4章 開(kāi)發(fā)中解決的問(wèn)題在剛開(kāi)始,我們遇到的首要問(wèn)題就是戰(zhàn)機(jī)的發(fā)子彈問(wèn)題。為了能實(shí)現(xiàn)這個(gè)設(shè)計(jì),我們把這些監(jiān)聽(tīng)都放在了一個(gè)面板類(lèi)中,這個(gè)面板類(lèi)就是整個(gè)游戲類(lèi)中的主面板類(lèi)。有了以時(shí)間監(jiān)聽(tīng)來(lái)控制整個(gè)游戲界面的刷新為保證,在接下來(lái)的任務(wù)中,我們就要考慮控制英雄戰(zhàn)機(jī)的監(jiān)聽(tīng)事件啦!更具我們對(duì)游戲的了解,玩家即需要用鍵盤(pán)來(lái)控制英雄戰(zhàn)機(jī),還需要用鼠標(biāo)來(lái)控制英雄戰(zhàn)機(jī)的移動(dòng)。圖39 爆炸圖片A庫(kù)圖310 爆炸圖片B庫(kù)英雄戰(zhàn)機(jī)的監(jiān)聽(tīng)是這個(gè)游戲是否能順利進(jìn)行的關(guān)鍵,監(jiān)聽(tīng)的好壞還決定了游戲的流暢度。這些爆炸效果的實(shí)現(xiàn)全靠爆炸數(shù)組中的圖片不斷疊加,這些效果圖片如圖39和圖310。其次,爆炸類(lèi)的所有實(shí)體會(huì)在每一次的刷屏中對(duì)它的實(shí)體進(jìn)行重繪,并且所繪的圖片變量下表會(huì)在圖片數(shù)組中遍歷,當(dāng)下標(biāo)超出數(shù)組的長(zhǎng)度,這個(gè)爆炸類(lèi)的實(shí)體就被刪除。圖片爆炸的準(zhǔn)確位置我們也不用去擔(dān)心啦,應(yīng)為有了上面的碰撞檢測(cè)作為支持,現(xiàn)在我們只需把碰撞后傳來(lái)的準(zhǔn)確坐標(biāo)給了我們的爆炸類(lèi),接下來(lái)的工作就交給了我們的爆炸類(lèi)吧。上節(jié)中我們說(shuō)到了碰撞,只有碰撞的定位十分準(zhǔn)確,在后期中我們才能完成更多的特殊效果,在這一節(jié)中我們就來(lái)完成敵機(jī)的爆炸效果吧。在做碰撞的檢測(cè)時(shí),我們采用的是視覺(jué)調(diào)試上的微調(diào),在做每一次的碰撞檢測(cè)時(shí)我們都會(huì)按不同的像素位置進(jìn)行調(diào)試,最終我們把這些檢測(cè)方法放在了上面所說(shuō)的方法中。在實(shí)現(xiàn)著些碰撞的時(shí)候,我們所約束的主要思想就是兩兩物體的矩形框判斷。用什么樣的邊界要視不同情況而定,用最近似的幾何形狀。我們采用邊界框法,邊界框是在編程中加進(jìn)去的不可見(jiàn)的邊界。但我們要碰撞的物體是圓形子彈和方形的飛機(jī),就需要一種精確的檢測(cè)方法。因?yàn)轱w行射擊游戲就是碰撞的游戲——躲避敵人的子彈或飛機(jī),同時(shí)用自己的子彈去碰撞敵人。說(shuō)到碰撞我們的這個(gè)項(xiàng)目基本上說(shuō)已經(jīng)可以進(jìn)行游戲啦,只是再添加一些游戲中特效,就能讓玩家感受到真實(shí)的游戲場(chǎng)景。在血量條的左側(cè)有個(gè)“3P”的字樣,這是告訴玩家當(dāng)前的戰(zhàn)機(jī)型號(hào)是第三種戰(zhàn)機(jī)。結(jié)合上面的中心思想,我們把玩家的戰(zhàn)機(jī)狀態(tài)顯示在了游戲界面的底層,這樣的話既不影響游戲的順利進(jìn)行,也符合我們大多數(shù)人的習(xí)慣,整個(gè)的游戲界面效果能給玩家一個(gè)充滿(mǎn)硝煙的戰(zhàn)爭(zhēng)景象,如圖38所示。玩家最多時(shí)間看到的還是游戲界面,所以我們小組考慮到了游戲界面的重要性,在如何設(shè)計(jì)游戲界面上都不敢馬虎。主要是在顯示圖片的時(shí)候,把圖片的長(zhǎng)設(shè)置成和當(dāng)前界面的X像素相等,圖片的高設(shè)置成當(dāng)前界面Y像素的2倍,每張圖圖片的初始位置都是在(0,Y)位置,然后在刷屏的過(guò)程中讓圖片坐標(biāo)的Y值不斷增加相同的值,在系統(tǒng)判斷到圖片的Y值坐標(biāo)大于等于0像素時(shí)初始化下一張背景圖片,這樣的話都可以把每一張圖片完整的展現(xiàn)在玩家面前。經(jīng)小組討論,我們?cè)O(shè)計(jì)了一個(gè)周期切換的背景圖庫(kù),在這個(gè)背景圖庫(kù)中一共是十張不同場(chǎng)景的背景效果圖片,讓這十張圖片在游戲的過(guò)程當(dāng)中不停地周期滾動(dòng)切換,其中的三張圖片分別如圖3圖36和圖37。那么現(xiàn)在我們?cè)谶@也就不過(guò)多的介紹這兩個(gè)界面的具體實(shí)現(xiàn)細(xì)節(jié)啦,有興趣的編程愛(ài)好者可以去查看我們的項(xiàng)目源碼,我想你們通過(guò)代碼的具體調(diào)試,能從中獲得比現(xiàn)在更得的經(jīng)驗(yàn)和方法。大家現(xiàn)在應(yīng)該也有所收獲,現(xiàn)在我們回過(guò)頭來(lái),再去想想上面那兩個(gè)界面的大致流程,是不是就能很快的在自己的大腦中繪制出來(lái)一條清晰的路徑呢?所以,我們要學(xué)習(xí)別人的一些思想,在我們?nèi)ネ瓿扇魏我患ぷ鲿r(shí),我們不可能不用經(jīng)過(guò)大腦的思考就能去辦,就連掃大街的阿姨也會(huì)作出簡(jiǎn)單的判斷,什么是垃圾,我要清理的東西是什么之類(lèi)的簡(jiǎn)單判斷。最后我們?cè)侔堰@些實(shí)體的實(shí)例放在一個(gè)大的容器中,讓他們根據(jù)事先的游戲約定進(jìn)行游戲,這就好比是我們舉行的運(yùn)動(dòng)會(huì)一樣,把所有參賽選手放在同一個(gè)擂臺(tái)上,讓他們根據(jù)游戲的規(guī)則進(jìn)行發(fā)揮。我們又好像是在建大樓一樣,比如我們想要建一所學(xué)校,我們事先要先規(guī)劃好校園的占地面積,以及所有樓房和整體校園的布局,然后再去修建每一座大樓。系統(tǒng)會(huì)以最后一次的監(jiān)聽(tīng)來(lái)賦值于戰(zhàn)機(jī)的型號(hào),然后在玩家開(kāi)始游戲時(shí),系統(tǒng)就會(huì)調(diào)用當(dāng)前玩家戰(zhàn)機(jī)的型號(hào),這樣就能實(shí)現(xiàn)玩家所想要的效果。圖33 選戰(zhàn)機(jī)1模式圖34 選戰(zhàn)機(jī)2模式這個(gè)界面的設(shè)計(jì)確實(shí)給我們帶來(lái)一定的難度,先不說(shuō)它的整個(gè)窗臺(tái)的布局格式,單單從用戶(hù)的操作來(lái)說(shuō),怎么樣才能記住玩家所選的戰(zhàn)機(jī)型號(hào)呢,說(shuō)到這里有些對(duì)編程非常熟悉的人就會(huì)笑啦!因?yàn)樵谒麄冄劾镞@個(gè)根本不算是難題,不錯(cuò),可是考慮到大家的編程能力不同,也就把我們對(duì)這個(gè)問(wèn)題的前前后后整個(gè)過(guò)程給寫(xiě)啦下來(lái)。進(jìn)入這個(gè)開(kāi)始界面,就是玩家愿望已久的選戰(zhàn)機(jī)時(shí)刻,我們?yōu)榱四芙o玩家設(shè)置一個(gè)懸念,就只能讓玩家在前兩種戰(zhàn)機(jī)中選擇,第三種戰(zhàn)機(jī)給玩家的提示是玩家等級(jí)不足無(wú)法選擇,這樣也好激發(fā)一些用戶(hù)繼續(xù)游戲的興趣。我們?cè)诖a中的實(shí)現(xiàn)也是很容易的,大家通過(guò)下面的講解能很快的明白。開(kāi)始我們也想了很多種效果,比如讓一連串的提醒字符從這個(gè)窗臺(tái)的某個(gè)方位出現(xiàn),然后再讓這串字符按一定的軌跡滾動(dòng)或跳躍,但是這種效果我們都不贊同,總感覺(jué)那不想要即將開(kāi)始戰(zhàn)爭(zhēng)的前奏。 圖31 華文彩體開(kāi)始界面圖32 黑體開(kāi)始界面我們?cè)O(shè)計(jì)這樣的開(kāi)始界面主要是依賴(lài)于我們大多數(shù)人的生活習(xí)慣,習(xí)慣上把開(kāi)始提醒放在一個(gè)窗臺(tái)的左上角,把提示進(jìn)入的操作放在窗臺(tái)的右下角。其中最主要的是要定義一個(gè)爆炸圖片數(shù)組和爆炸圖片數(shù)組下標(biāo)的int類(lèi)型count屬性,在繪畫(huà)爆炸圖片是只調(diào)用當(dāng)前count下標(biāo)的圖片,然后count++,當(dāng)count越出爆炸圖片數(shù)組長(zhǎng)度時(shí),踢出當(dāng)前BombEnemy實(shí)例的對(duì)象。MyBullet類(lèi)和EnemyBull類(lèi)基本上也是相同的,特別的也是繪畫(huà)方法,它們都是具體繪畫(huà)子彈實(shí)例的操作方法。GameBack類(lèi)也是本游戲的一個(gè)亮點(diǎn),該方法具體實(shí)現(xiàn)了本游戲的界面視覺(jué)效果,既有閃動(dòng)字體的視覺(jué)效果,也有游戲戰(zhàn)機(jī)自由切換的選擇視覺(jué)效果,還有游戲過(guò)程中的背景圖片滾動(dòng)效果。該類(lèi)中還內(nèi)嵌一個(gè)內(nèi)部的時(shí)間監(jiān)聽(tīng)類(lèi)TimerListener,它實(shí)現(xiàn)了ActionListener接口。該類(lèi)中還有碰撞的相應(yīng)方法CoDetection,在該方法中還會(huì)具體調(diào)用相應(yīng)碰撞的碰撞方法:CoEnemyHero是英雄與敵機(jī)子彈碰撞的具體檢測(cè)方法、CoEnemyMyBull是敵機(jī)與英雄子彈碰撞的具體檢測(cè)方法。其中paintComponent方法大部分都為間接調(diào)用相應(yīng)類(lèi)中的paintComponent方法來(lái)繪制所需要的圖形界面效果,也不排除直接來(lái)繪畫(huà)界面的代碼。GameMain方法中只添加了一個(gè)面板,僅此GameMain類(lèi)就算是完成了本游戲的主要使命。第3章 設(shè)計(jì)與實(shí)現(xiàn)游戲大體上可以分為八大類(lèi):GameMain類(lèi)、GameJpanel類(lèi)、GameBack類(lèi)、Hero類(lèi)、Enemy類(lèi)、MyBullet類(lèi)、EnemyBull類(lèi)、BombEnemy類(lèi)。開(kāi)發(fā)環(huán)境建議用Eclipse Classic 。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。操作系統(tǒng)平臺(tái)上安裝一個(gè)Java平臺(tái)之后,Java應(yīng)用程序就可運(yùn)行。Java平臺(tái)由Java虛擬機(jī)和Java應(yīng)用編程接口構(gòu)成。從此,Java被很多計(jì)算機(jī)程序員接收并推動(dòng)了Web的迅速發(fā)展,通常使用的瀏覽器現(xiàn)在支持Java Applet。Java是由Sun Micro systems公司于1995年開(kāi)發(fā)完成的Java程序設(shè)計(jì)語(yǔ)言和Java平臺(tái)的總和。這樣就不怕吸引不了不同年齡段的游戲玩家。如果發(fā)生碰撞,敵機(jī)或戰(zhàn)機(jī)都會(huì)受到來(lái)自系統(tǒng)的相應(yīng)懲罰,通過(guò)界面的效果切換來(lái)直觀的展現(xiàn)在用戶(hù)面前。程序運(yùn)行時(shí)應(yīng)該對(duì)玩家是否飛出屏幕的范圍進(jìn)行檢測(cè),如果飛出屏幕,就應(yīng)該重新設(shè)定玩家的位置或者適時(shí)的把敵機(jī)踢出線性敵機(jī)數(shù)組,子彈的視覺(jué)效果也是這樣,通過(guò)子彈內(nèi)部類(lèi)的自我檢測(cè)踢出相應(yīng)的越界子彈。在后期代碼的實(shí)現(xiàn)過(guò)程當(dāng)中,有些規(guī)則可能會(huì)發(fā)生變更,能有那樣的提高也是值得慶祝,不過(guò)那些方案也是在能力和時(shí)間都允許的范圍內(nèi)才能做出開(kāi)發(fā)的,期間用戶(hù)的回饋也是極其重要的。玩家戰(zhàn)機(jī)每擊中一個(gè)目標(biāo),會(huì)得到加分 。不同型號(hào)子彈的面積不同,相對(duì)來(lái)說(shuō)面積大的子彈擊中敵機(jī)的可能性更大。玩家只需要通過(guò)鍵盤(pán)上的數(shù)字鍵FFF3就能在三種戰(zhàn)機(jī)之間切換,找到自己用的舒服的戰(zhàn)機(jī),避免游戲的單調(diào)性。飛行射擊游戲要求有一個(gè)可供玩家控制的小飛機(jī),小飛機(jī)有一定的生命值,可以發(fā)射子彈擊毀敵機(jī),躲避敵機(jī)發(fā)射的子彈,若小飛機(jī)被敵機(jī)擊中,則生命值減少,當(dāng)生命值小于等于0時(shí),游戲結(jié)束,游戲分為兩關(guān),每關(guān)最后設(shè)置一個(gè)大的敵機(jī),它擁有更多的生命值,可以發(fā)射更多的子彈,若玩家控制小飛機(jī)最后擊毀敵方的Boss,則游戲勝利。在游戲?qū)τ脩?hù)獎(jiǎng)勵(lì)的過(guò)程中我們還要提高難度系數(shù),用戶(hù)在獲得獎(jiǎng)勵(lì)之前還要做出一些判斷,才下決定是否接受獎(jiǎng)勵(lì),而不是讓用戶(hù)在沒(méi)由通過(guò)思考就接受了游戲?qū)λ莫?jiǎng)勵(lì),這一點(diǎn)的解釋就是,如果當(dāng)前用戶(hù)的子彈是高級(jí)模式,而獎(jiǎng)勵(lì)用戶(hù)的子彈模式是低于當(dāng)前用子彈的模式,這時(shí)用戶(hù)如果接受了游戲的獎(jiǎng)勵(lì),那么用戶(hù)的子彈攻擊力就會(huì)下降。要做到應(yīng)對(duì)代碼中出現(xiàn)的各種問(wèn)題都有語(yǔ)法可依,對(duì)問(wèn)題的解決要有路可尋。因此,其邏輯設(shè)計(jì)應(yīng)當(dāng)相當(dāng)嚴(yán)謹(jǐn),
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1