999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python的小恐龍游戲設計與分析

2019-10-21 08:08:31董彧先
現代信息科技 2019年12期

摘 ?要:Python是一種跨平臺的、開源的、免費的、解釋型的高級編程語言。它具有豐富的、強大的庫,能夠把其他語言制作的各種模塊很輕松地聯結在一起,所以Python常被稱為“膠水”語言。Python語言近幾年發展勢頭迅猛,應用領域也非常廣泛,在Web編程、圖形處理、黑客編程、大數據處理、網絡爬蟲、科學計算和游戲編程等領域都能找到Python的應用。Python語言的研究和發明主要是為了便于學習和應用,因此Python語言是開源的,并且語法非常簡單、容易編寫和理解。本文通過對小恐龍游戲的設計與分析,掌握Python語言在游戲開發領域的優勢。

關鍵詞:Python;游戲開發;計算機語言;程序設計

中圖分類號:TP311.1 ? ? ? 文獻標識碼:A 文章編號:2096-4706(2019)12-0081-03

Abstract:Python is a cross-platform,open source,free,explanatory high-level programming language. It has rich and powerful libraries,which can easily connect various modules made by other languages. So Python is often called “glue” language. Python language has developed rapidly in recent years,and its application fields are also very wide. It is used in Web programming,graphics processing,hacker programming,big data processing,network crawler,scientific computing and game programming. Python language research and invention is mainly for easy learning and application,so Python language is open source,and the grammar is very simple,easy to write and understand. Through the design and analysis of small dinosaur game,we can grasp the advantages of Python language in the field of game development.

Keywords:Python;game development;computer language;programming

0 ?引 ?言

Python是一種計算機程序設計語言,是一種面向對象的動態類型語言,最初被設計用于編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,Python越來越多被用于獨立的大型項目的開發。Python語言在游戲開發領域有著自己的優勢,可以通過相對于其他編程語言更加人性化的語法和更加少的代碼量來完成相同的任務。

在本文設計的基于Python的游戲中會看見一只小恐龍,按下鍵盤中的空格鍵就能激活該恐龍,然后可以通過空格鍵來控制小恐龍的跳躍進行障礙物的躲避,并且躲避障礙物的數量進行分數的統計。

1 ?Python小恐龍游戲的設計流程

在游戲主窗體下完成顯示小恐龍、顯示滾動地圖、隨機顯示障礙物。在顯示小恐龍的同時編寫小恐龍的跳躍功能和音效。同時判斷游戲中移動的障礙物是否與小恐龍發生碰撞。如果小恐龍與障礙物發生碰撞則播放碰撞音效、顯示游戲結束畫面、顯示游戲積分。如果小恐龍沒有與障礙物發生碰撞,則只顯示跳過障礙物后的積分變化。

2 ?小恐龍游戲主窗體的實現

在Python游戲開發中,主要使用Pygame模塊,這樣可以使小恐龍游戲的開發變得簡單很多。創建名稱為dinsosaur的文件夾,該文件夾用于保存小恐龍游戲的項目文件,然后在該文件夾中分別創建兩個文件夾,一個命名為audio,用于保存游戲中的音頻文件,另一個命名為image,用于保存游戲中所使用的圖片資源。最后在dinosaur文件夾中創建dinosaur.py文件,在該文件中保存實現小恐龍游戲的代碼。首先導入Pygame庫與Pygame中的常量庫,然后定義窗體的寬度與高度。

其次,創建mainGame()方法,在該方法中首先進行Pygame的初始化工作,然后創建時間對象用于更新窗體中的畫面,再創建窗體實例并設置窗體的標題文字,最后通過循環實現窗體的顯示與刷新,經過初始化以后就可以盡情地使用Pygame了。使用Pygame時鐘之前,必須先創建Clock對象的一個實例,從而控制每個循環多長時間運行一次。通常來說需要先創建一個窗體,方便程序員與代碼交互。

在實現一個可以循環滾動的地圖時,首先需要渲染兩張地圖的背景圖片,然后地圖1的背景圖片展示在窗體中,而另一張地圖2的背景圖片需要在窗體的外面進行準備,如圖1所示。

然后兩張地圖同時以相同的速度向左移動,此時窗體外的地圖2背景圖片將跟隨地圖1背景圖片進入窗體中,這樣就完成了地圖的循環播放,如圖2所示。

當地圖1完全離開窗體的時候,將該圖片的坐標設置為準備狀態的坐標位置。通過不斷顛倒兩張圖片的位置,然后再進行平移,就可以在用戶的視覺中形成一張不斷滾動的地圖。通過代碼實現滾動地圖的具體步驟如下:

(1)創建一個名稱為KongLongMap的滾動地圖類,然后在該類的初始化方法中加載背景圖片、定義X與Y的坐標。

(2)在KongLongMap類中創建名為rolling()的方法,在該方法中根據地圖背景圖片的X坐標判斷圖片是否移出窗體,如果移出就給圖片設置一個新的坐標點,否則按照每次6個像素的跨度向左移動。

(3)在KongLongMap類中創建名為update()的方法,這樣就可以實現地圖無限滾動的效果。

(4)在mainGame()方法中,設置標題文字代碼,在下面創建兩個背景圖片對象。

(5)在mainGame()方法中循環,實現無限循環滾動的地圖。

3 ?可以跳躍的小恐龍

在實現小恐龍跳躍時,首先需要設置小恐龍在地圖上默認的固定位置,然后判斷是否按下了鍵盤中的空格鍵。如果按下了就開啟小恐龍的跳躍開關,讓小恐龍以6個像素的距離向上移動。當小恐龍到達窗體的頂部邊緣時,讓小恐龍以6個像素的距離向下移動,回到地面后關閉跳躍的開關。具體的實現步驟如下:

(1)導入迭代工具,創建一個名稱為Dinosaur的恐龍類,然后在該類的初始化方法中首先定義小恐龍跳躍時所需要的變量,然后加載小恐龍跑動的三張圖片,最后加載小恐龍跳躍時的音效并設置小恐龍默認顯示的坐標位置。

(2)在Dinosaur類中創建Jump()方法,通過該方法實現開啟跳躍的開關。

(3)在Dinosaur類中創建Move()方法,該方法先判斷小恐龍的跳躍開關是否開啟,再判斷小恐龍是否在地面上,如果滿足了上面的兩個條件,小恐龍就以6個像素的距離向上移動。當小恐龍到達窗體頂部時會以6個像素的距離向下移動,當小恐龍回到地面后關閉跳躍開關。

(4)在Dinosaur類中創建dinosaur()方法,在該方法中首先匹配小恐龍跑步的動圖,然后進行小恐龍的繪制。

(5)在mainGame()方法中,在創建地圖對象的代碼下面創建小恐龍。

(6)在mainGame()方法的while循環中,判斷關閉窗體的下面判斷是否按下了空格鍵,如果按下了就可以開啟小恐龍開關,并且播放跳躍音效。

(7)在mainGame()方法中繪制地圖代碼下面實現小恐龍的移動與繪制功能。

4 ?障礙物的出現

在實現障礙物的出現時,首先需要考慮到障礙物的大小以及障礙物的不同,如果每次出現的障礙物都是相同的,那么該游戲將失去游戲的樂趣。所以,需要加載兩個大小不同的障礙物圖片,然后隨機抽選并顯示。此外,還需要通過計算來設置多久出現一個障礙物并將其顯示在主窗體中。具體的實現步驟如下:

(1)導入隨機數,創建一個名稱為Obstacle的障礙物類,在該類中定義一個分數,然后在初始化方法中加載障礙物圖片、分數圖片以及加分音效。創建0至1的隨機數數字,根據該數字抽選障礙物是石頭還是仙人掌,最后根據圖片的寬高創建障礙物矩形的大小,并且設置障礙物的繪制坐標。

(2)在Obstacle類中首先創建move()方法用于實現障礙物的移動,然后創建Obstacle()方法用于實現繪制障礙物。

(3)在mainGame()方法中創建恐龍對象的代碼,下面定義添加障礙物的時間與障礙物對象列表。

(4)在mainGame()方法中繪制恐龍的代碼下面,計算障礙物出現的間隔時間。

(5)在mainGame()方法中計算障礙物間隔時間代碼的下面,循環遍歷障礙物并進行障礙物的繪制。

(6)在mainGame()方法中更新整個窗體代碼的上面,增加障礙物時間。

5 ?碰撞與積分

在實現碰撞與積分時,首先需要判斷小恐龍與障礙物的兩個矩形圖片是否發生了碰撞,如果發生了碰撞就證明該游戲已經結束,否則判斷小恐龍是否越過了障礙物,確認躍過后就可以進行加分操作,并將分數顯示在窗體頂部中間的位置了。具體步驟如下:

(1)在Obstacle類中,Obstacle()方法的下面創建getscore()方法用于獲取分數并播放加分音效,然后創建showScore()方法用于在窗體頂部中間的位置顯示分數。

(2)在mainGame()方法的上面創建game_over()方法,在該方法中首先需要加載與播放撞擊的音效,然后獲取窗體的寬度與高度,最后加載游戲結束的圖片并將該圖片顯示在窗體的中間位置。

(3)在mainGame()方法中,繪制障礙物代碼的下面判斷小恐龍與障礙物是否發生碰撞,如果發生了碰撞,就開啟游戲結束的開關,并調用game_over()方法顯示游戲結束的圖片;否則判斷小恐龍是否跳過了障礙物,躍過就進行分數的增加并顯示當前得分。

(4)為了實現在游戲結束后再按下空格鍵時重新啟動游戲,需要在mainGame()方法中播放小恐龍跳躍音效代碼的下面判斷游戲結束的開關是否開啟,如果開啟,則重新調用mainGame()方法重新啟動游戲。

6 ?結 ?論

隨著人工智能的發展,Python語言的應用變得越來越普遍。通過Python語言中的Pygame模塊來設計小恐龍游戲,可以發現Python語言在開發游戲方面非常簡便,相比其他語言用了更少的代碼量完成了相同的功能。Python擁有一個強大的標準庫。Python語言的核心只包含數字、字符串、列表、字典、文件等常見類型和函數,而由Python標準庫提供了系統管理、網絡通信、文本處理、數據庫接口、圖形系統、XML處理等額外的功能。Python標準庫命名接口清晰、文檔良好,很容易學習和使用。

參考文獻:

[1] 鄧亞君,楊剛,翁文斌,等.基于Python的網絡聊天室設計 [J].電子技術與軟件工程,2019(5):35-36.

[2] 蔡敏.Python語言的Web開發應用分析 [J].無線互聯科技,2019,16(4):27-28.

[3] 耿穎.使用Python語言的GUI可視化編程設計 [J].單片機與嵌入式系統應用,2019,19(2):20-22+24.

作者簡介:董彧先(1981-),男,漢族,山東聊城人,講師,碩士研究生,研究方向:網絡安全、嵌入式系統設計。

主站蜘蛛池模板: 国产凹凸视频在线观看| 四虎免费视频网站| 伊人久久影视| 久青草网站| 日韩精品欧美国产在线| 国产av无码日韩av无码网站| 国产一级片网址| 91青草视频| 伊人福利视频| 亚洲无线国产观看| 欧洲免费精品视频在线| 亚洲欧美成人| 国产精品19p| 亚洲V日韩V无码一区二区| 精品一区二区三区水蜜桃| 国产在线精品网址你懂的| 国内精品视频区在线2021| 国产精品第5页| 国内精品视频| 在线观看视频99| 五月婷婷综合色| 色呦呦手机在线精品| 草草线在成年免费视频2| 国产成人资源| 欧美在线视频a| 91精品久久久久久无码人妻| 黄色网站不卡无码| 欧美中文字幕无线码视频| 国产一区在线视频观看| 国产精品网址你懂的| 五月婷婷伊人网| 三区在线视频| 国产亚洲第一页| 激情无码视频在线看| 亚洲精品桃花岛av在线| 少妇极品熟妇人妻专区视频| 丁香综合在线| 国产18在线播放| 日韩毛片基地| 中文字幕人成乱码熟女免费 | 欧美成人精品一区二区| 国产激情第一页| 亚洲欧洲自拍拍偷午夜色| 伊人激情久久综合中文字幕| 国产欧美视频在线观看| 国产丝袜91| 日韩精品无码免费专网站| 久久香蕉国产线看观看式| 日韩欧美国产成人| 99热线精品大全在线观看| 国产成人综合日韩精品无码首页 | 国产精品伦视频观看免费| 国产91色在线| 激情六月丁香婷婷四房播| 国产一区二区三区在线观看视频 | 国产性精品| 又爽又大又光又色的午夜视频| 亚洲成人在线免费| 狠狠色综合久久狠狠色综合| 国产精品jizz在线观看软件| 亚洲欧美人成人让影院| 国产综合网站| 午夜丁香婷婷| 日本成人福利视频| 亚洲人成日本在线观看| 日韩精品一区二区三区swag| 99资源在线| 波多野结衣亚洲一区| 2020国产在线视精品在| 日本欧美中文字幕精品亚洲| 欧美在线综合视频| 欧美日韩一区二区三区在线视频| 国产一区二区免费播放| 免费可以看的无遮挡av无码| 国产成人福利在线| 另类欧美日韩| 亚洲男人的天堂久久香蕉| 国产永久在线视频| 欧美在线视频不卡| 亚洲一区色| 中文字幕佐山爱一区二区免费| 国产jizz|