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

正文內(nèi)容

[教育學(xué)]二級課題報告-文庫吧資料

2025-04-20 03:44本頁面
  

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