python飞机大战实训报告200_飞机大战实训报告.doc
您所在位置:網站首頁 > 海量文檔
 > 行業資料 > 航空/航天
飛機大戰實訓報告.doc22頁
本文檔一共被下載:次,您可全文免費在線閱讀后下載本文檔。
下載提示
1.本站不保證該用戶上傳的文檔完整性,不預覽、不比對內容而直接下載產生的反悔問題本站不予受理。
2.該文檔所得收入(下載+內容+預覽三)歸上傳者、原創者。
3.登錄后可充值,立即自動返金幣,充值渠道很便利
程序設計綜合實踐
實習報告
學院名稱信息科學與工程學院專業班級軟件工程2012-3學生姓名程大川學號201201051002指導教師孫紅梅
山 東 科 技 大 學
一、實習題目:四、
指導教師(簽章):
2014年 月 日
目 錄
7. 實訓中遇到的主要問題及解決方法22
8. 實訓收獲與體會23
1. 概述2. 相關技術
2.1滾動背景技術
為了讓游戲場景更加逼真,游戲節奏更加合理,可以通過讓背景滾動來提高游戲的場景效應,實現這一技術時,可以將一張背景圖片復制為三張,從上到下連續的拼接在一起,并將中間的圖片進行垂直翻轉,在輸出圖像時,每次只輸出合成后圖片的1/3部分,每次輸出后,將位圖中的縱坐標輸出位置增加一個位移量,當輸出位置到達圖片的2/3部分時,將圖片的縱坐標輸出位置置為0,由于圖片的起始位置和圖片的2/3位置是一致,所以在背景圖片的顯示中,不會出現圖片的卡頓和瞬移現象。
2.2透明貼圖技術
在飛機大戰項目中,需要將很多的BMP圖像貼到畫布上,結合邏輯處理完成對整個游戲的設計,為了實現更好的顯示效果,使移動元素所用的圖像更加貼合背景,則需要利用透明貼圖技術,將BMP圖像中的無關顏色做透明處理,實現方式為調用CDC中的TransparentBlt函數,并且利用函數的最后一個參數填寫RGB信息,實現對對應顏色的透明化。
2.3定時器技術
為了實現屏幕的定時刷新功能和暫停功能,需要設置定時器,當設置好時間間隔時,每次經過一個設置的時間間隔,Windows都會向程序發送一個WM_TIMER,并且調用相關函數,程序執行OnTimer函數,并根據定時器編號執行相應的操作。實現方式為使用SetTimer函數設置定時器標識和時間間隔。另外也可以利用定時器實現對連續按鍵的處理,使子彈發射和移動效果更加平滑合理。
2.4雙緩沖技術
利用普通的繪制函數對項目中元素進行繪圖時,由于繪圖時機不一定連續,繪圖效率不一定統一,會造成重影和閃屏的不良效果,為了解決這一問題,可以利用雙緩沖技術,先將要繪制的每部分內容存儲到內存中的一個虛擬的繪圖設備中,當所有部分的內容都繪制完畢后,再一次性的將內存中的內容繪制到真實屏幕上,實現這一方式,可以在程序定義一個CDC指針變量和CBitmap指針向量實現,在構造函數中為兩個指針分配內存空間,將所有的圖像繪制完畢后,再利用GetDC函數取得真實窗口CDC指針和BitBlt函數將內存中的內容完整的拷貝至真實屏幕上。
2.5連續按鍵處理技術
在飛機大戰項目中,需要根據鍵盤輸入決定游戲中各種位置的改變和一些變量的內容,在利用戰機發射子彈或者進行移動時,需要按下鍵盤的空格鍵或者方向鍵,在該項目中,如果利用MFC中提供的默認消息處理函數進行按鍵消息的處理,則會導致子彈發射頻率過快,戰機移動過快,甚至程序卡死等嚴重問題,所以應將按鍵消息處理放在OnTimer函數里,以達到平滑的移動和發射子彈效果
2.6碰撞處理技術
在該項目中,需要處理對象之間的各種碰撞,比如,戰機子彈與敵機的碰撞、敵機子彈與戰機的碰撞、敵機與戰機的碰撞、子彈與客機的碰撞等等。在處理碰撞時,可以為每個對象設置一個與位圖大小相同的矩形,矩形的位置與對應位圖所在位置一直,當判斷兩個元素是否發生了碰撞時,只需要利用IntersectRect函數判斷兩個矩形是否相交即可。
2.7鏈表存儲技術
一局游戲中會有很多的敵機,敵機子彈以及戰機子彈,并且需要其進
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
用戶名:
驗證碼:
匿名?
發表評論
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python飞机大战实训报告200_飞机大战实训报告.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中矩阵SVD分解及还原
- 下一篇: Ubuntu安装screen