python實戰之利用pygame實現貪吃蛇游戲(一)
之前嘗試了自己用pygame寫井字棋,這次玩的是貪吃蛇系列。個人感覺模塊可能會比較大,所以選擇將函數和主要邏輯代碼分在了兩個文件中。
fuc為函數模塊,存儲了事件感應和刷新界面等部分。main模塊則是游戲的核心。
二、搭建界面這里我就不重復了,可以先看一下這篇博客其中界面的基本要素都有。
main.py
import pygamefrom fuc import *# 基本屬性lattice_wh = 20 #長寬snake_color = (84, 255, 159)food_color = (255, 64, 64)# 繪制界面pygame.init()screen = pygame.display.set_mode((25*lattice_wh,25*lattice_wh))pygame.display.set_caption(’貪吃蛇’)# 游戲狀態game_stats = 1while game_stats: update(screen,lattice_wh) check_events()
這次,我準備繪制一個25*25個格子的界面,每一個格子的長寬都為20。這次的繪制方式和之前不一樣,我準備使用的是pygame.draw.line()函數,來繪制一條條的直線。傳入參數:界面(screen)rbg顏色(我這里是(105, 105, 105),是淡灰色,吧)起始點坐標、結束點坐標(坐標系在上面博客都有)
代碼部分:(放在update函數中,因為每一次刷新都需要重新繪制網格)
def update(screen,lattice_wh): '''屏幕刷新''' # 背景顏色 screen.fill((255,255,255)) # 繪制網格 for i in range(25):pygame.draw.line(screen,(105, 105, 105),(0,lattice_wh*i),(500,lattice_wh*i)) for i in range(25):pygame.draw.line(screen,(105, 105, 105),(lattice_wh*i,0),(lattice_wh*i,500)) pygame.display.flip()
fuc模塊:
import pygameimport sys'''存儲了相關的函數'''def update(screen,lattice_wh): '''屏幕刷新''' # 背景顏色 screen.fill((255,255,255)) # 繪制網格 for i in range(25):pygame.draw.line(screen,(105, 105, 105),(0,lattice_wh*i),(500,lattice_wh*i)) for i in range(25):pygame.draw.line(screen,(105, 105, 105),(lattice_wh*i,0),(lattice_wh*i,500)) pygame.display.flip()def check_events(): for event in pygame.event.get():if event.type == pygame.QUIT: sys.exit()三、運行結果
目前我們已經結束了界面搭建,接下來的部分我將實現邏輯。
請看python實戰之利用pygame實現貪吃蛇游戲(一)
到此這篇關于python實戰之利用pygame實現貪吃蛇游戲的文章就介紹到這了,更多相關pygame實現貪吃蛇游戲內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
1. 怎樣才能用js生成xmldom對象,并且在firefox中也實現xml數據島?2. 基于javaweb+jsp實現企業車輛管理系統3. ASP.Net MVC利用NPOI導入導出Excel的示例代碼4. 利用ajax+php實現商品價格計算5. jstl 字符串處理函數6. JSP動態網頁開發原理詳解7. .Net core Blazor+自定義日志提供器實現實時日志查看器的原理解析8. PHP中為什么使用file_get_contents("php://input")接收微信通知9. IOS蘋果AppStore內購付款的服務器端php驗證方法(使用thinkphp)10. XML CDATA是什么?
