一、前言
之前嘗試了自己用pygame寫井字棋,這次玩的是貪吃蛇系列。
個人感覺模塊可能會比較大,所以選擇將函數和主要邏輯代碼分在了兩個文件中。

fuc為函數模塊,存儲了事件感應和刷新界面等部分。
main模塊則是游戲的核心。
二、搭建界面
這里我就不重復了,可以先看一下這篇博客
其中界面的基本要素都有。
main.py
import pygame
from 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 = 1
while 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 pygame
import 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實現貪吃蛇游戲內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python干貨實戰之逆向登錄世界上最大的游戲平臺Stream
- Python實戰練習之終于對肯德基下手
- python實戰游戲之史上最難最虐的掃雷游戲沒有之一
- python實戰之制作表情包游戲
- Python著名游戲實戰之方塊連接 我的世界