最近有很多的同學(xué)問 , 能不能用Python做出一個小游戲來 , 而且最好要講清楚每一段干嘛是用來干嘛的
那行 , 今天將來講解一下用Python pygame做一個貪吃蛇的小游戲

文章插圖
據(jù)說是貪吃蛇游戲是1976年 , Gremlin公司推出的經(jīng)典街機游戲 , 那我們今天用Python制作的這個貪吃蛇小游戲是一個像素版的 , 雖然簡陋 , 但還是可以玩起來的

文章插圖
私信小編01即可獲取大量Python學(xué)習(xí)資源 我們主要要做的內(nèi)容
- 創(chuàng)建游戲窗口
- 繪制貪吃蛇與食物
- 蛇吃食物

文章插圖

文章插圖
現(xiàn)在就開始我們的代碼 , 首先 , 還是導(dǎo)入模塊
import pygameimport randomimport copy 1. 創(chuàng)建游戲窗口 1.1 游戲初始化 pygame.init()clock = pygame.time.Clock()# 設(shè)置游戲時鐘pygame.display.set_caption("貪吃蛇-解答、源碼、相關(guān)資料可私信我")# 初始化標(biāo)題screen = pygame.display.set_mode((500, 500))# 初始化窗口 窗體的大小為 500500 1.2 初始化蛇的位置 蛇的長度 10 10 也就是蛇的 X Y 坐標(biāo) snake_list = [[10, 10]] 首先設(shè)置蛇的一個運行方向 接下來判斷鍵盤事件在決定蛇的運行方向 蛇可以運行起來了 , 那么接下來就是 , 吃食物增加自己的長度和不吃食物在不同的位置顯示 初始小蛇方向 move_up = Falsemove_down = Falsemove_left = Falsemove_right = True 1.3 初始化食物的位置 x = random.randint(10, 490)y = random.randint(10, 490)food_point = [x, y] 1.4 開啟游戲循環(huán) running = Truewhile running:# 游戲時鐘 刷新頻率clock.tick(20) 1.5 填充背景為白色 screen.fill([255, 255, 255]) 1.6 繪制背景 for x in range(0, 501, 10):pygame.draw.line(screen, (195, 197, 199), (x, 0), (x, 500), 1)pygame.draw.line(screen, (195, 197, 199), (0, x), (500, x), 1)food_rect = pygame.draw.circle(screen, [255, 0, 0], food_point, 15, 0)
文章插圖
1.7繪制蛇
snake_rect = []for pos in snake_list:# 1.7.1 繪制蛇的身子snake_rect.append(pygame.draw.circle(screen, [255, 0, 0], pos, 5, 0))
文章插圖
2. 繪制貪吃蛇與食物 2.1 獲取蛇的長度 , 移動蛇的身子
pos = len(snake_list) - 1while pos > 0:snake_list[pos] = copy.deepcopy(snake_list[pos - 1])pos -= 1 2.2 更改蛇頭位置 if move_up:snake_list[pos][1] -= 10if snake_list[pos][1] < 0:snake_list[pos][1] = 500if move_down:snake_list[pos][1] += 10if snake_list[pos][1] > 500:snake_list[pos][1] = 0if move_left:snake_list[pos][0] -= 10if snake_list[pos][0] < 0:snake_list[pos][0] = 500if move_right:snake_list[pos][0] += 10if snake_list[pos][0] > 500:snake_list[pos][0] = 0 2.3 鍵盤控制移動職位 for event in pygame.event.get():# print(event)# 判斷按下的按鍵if event.type == pygame.KEYDOWN:# 上鍵if event.key == pygame.K_UP:move_up = Truemove_down = Falsemove_left = Falsemove_right = False# 下鍵if event.key == pygame.K_DOWN:move_up = Falsemove_down = Truemove_left = Falsemove_right = False# 左鍵if event.key == pygame.K_LEFT:move_up = Falsemove_down = Falsemove_left = Truemove_right = False# 右鍵if event.key == pygame.K_RIGHT:move_up = Falsemove_down = Falsemove_left = Falsemove_right = True
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:
- 家庭教育的主體是什么
- 人教版 there怎么讀
- 別讓庸教練教出病來
- 穿在身上的運動教練
- 教練指出:冬季健身有講究
- 教練為你解答關(guān)于有氧健身操的疑惑
- 專家教你如何走出健身誤區(qū)
- 關(guān)于藝術(shù)與宗教的關(guān)系,正確的有
- 1分鐘教你如何把手機內(nèi)容投屏到電腦 手機怎么投屏到電腦
- 怎樣選擇合適自己的健身教練?
