使用 Python Turtle 制作贪吃蛇游戏
貪吃蛇游戲是一款于 1976 年由格雷姆林工業(yè)(Gremlin Industries)開發(fā),并由世嘉游戲(SEGA)發(fā)行的街機(jī)迷宮游戲。這款游戲曾經(jīng)登上多款諾基亞黑白機(jī),對上世紀(jì)的玩家來說頗有懷舊感。
貪吃蛇的玩法
玩家在貪吃蛇游戲中使用方向鍵操作貪吃蛇前進(jìn),盡可能收集食物取得高分。貪吃蛇在獲取食物后,身體長度會進(jìn)一步加長,而當(dāng)玩家不小心撞向墻壁或自己時(shí),游戲便結(jié)束。
對 Python 初學(xué)者而言,玩法邏輯較為簡單的貪吃蛇游戲正適合用來練習(xí) Turtle 框架,而這款以 Python 為核心的游戲?qū)褂靡韵氯齻€(gè)庫:
-
Turtle - 用于在虛擬畫布中繪制圖形
-
Time - 計(jì)算游戲中的用時(shí)
-
Random - 在 Python 中生成隨機(jī)數(shù)字,對應(yīng)隨機(jī)出現(xiàn)的食物
這篇教程將使用 Lightly 在線編寫 Python 代碼,無需下載任何應(yīng)用或安裝環(huán)境依賴即可在瀏覽器中編程。
第一步:導(dǎo)入模塊
在開始其他編寫其他代碼前,我們需要使用 import 代碼分別導(dǎo)入 turtle、time 及 random 等模塊。由于這些模塊都已預(yù)安裝在 Python 中,我們只需在代碼中導(dǎo)入即可。若模塊缺失,你也可以在 Lightly 中使用 Quick Fix 進(jìn)行快速安裝。
第二步:設(shè)置游戲界面
完成模塊導(dǎo)入后,我們需要繪制游戲窗口、蛇頭及食物等游戲內(nèi)容,同時(shí)也需要在頂部顯示游戲得分。
# 繪制窗口 wn = turtle.Screen() wn.title("Snake Game") wn.bgcolor("blue") # 用戶可以自行調(diào)整窗口的長度與寬度 wn.setup(width=600, height=600) wn.tracer(0)# 蛇頭 head = turtle.Turtle() head.shape("square") head.color("white") head.penup() head.goto(0, 0) head.direction = "Stop"# 游戲中的食物 food = turtle.Turtle() colors = random.choice(['red', 'green', 'black']) shapes = random.choice(['square', 'triangle', 'circle']) food.speed(0) food.shape(shapes) food.color(colors) food.penup() food.goto(0, 100)pen = turtle.Turtle() pen.speed(0) pen.shape("square") pen.color("white") pen.penup() pen.hideturtle() pen.goto(0, 250) pen.write("得分 : 0 最高得分 : 0", align="center",font=("candara", 24, "bold"))代碼效果:
第三步:監(jiān)聽按鍵
添加物體后還需要監(jiān)聽按鍵,才能通過按鍵控制蛇的動作。在這個(gè)游戲中,我們使用 WASD 四鍵分別控制上下左右移動。
# 設(shè)定按鍵方向def group():if head.direction != "down":head.direction = "up"def godown():if head.direction != "up":head.direction = "down"def goleft():if head.direction != "right":head.direction = "left"def goright():if head.direction != "left":head.direction = "right"def move():if head.direction == "up":y = head.ycor()head.sety(y+20)if head.direction == "down":y = head.ycor()head.sety(y-20)if head.direction == "left":x = head.xcor()head.setx(x-20)if head.direction == "right":x = head.xcor()head.setx(x+20)wn.listen() wn.onkeypress(group, "w") wn.onkeypress(godown, "s") wn.onkeypress(goleft, "a") wn.onkeypress(goright, "d")第四步:完善游戲機(jī)制
我們現(xiàn)在已經(jīng)可以通過鍵盤按鍵控制貪吃蛇移動,但我們還需要進(jìn)一步添加游戲機(jī)制,讓游戲變得更完善。例如:改變蛇身的長度和顏色、貪吃蛇吃下食物后計(jì)分、檢查蛇頭碰撞情況、計(jì)分并保存最高分等。
游戲最終的效果:
【查看完整代碼】https://074658e7fa-share.lightly.teamcode.com
以上代碼可在瀏覽器中直接打開,相關(guān)教程可查看:
如何打開并編輯他人用 Lightly 分享的項(xiàng)目?
今天的 Python 貪吃蛇教程就到這里,歡迎你在評論區(qū)留言提出疑問和建議,也歡迎你查看 TeamCode 的一些往期文章。
怎么看待 Python(PyScript) 可以做瀏覽器前端開發(fā)語言?
Python 教程:從 Python 爬蟲到數(shù)據(jù)分析
學(xué)習(xí) Python 爬蟲,手把手通過 Python 入門爬取網(wǎng)頁信息
總結(jié)
以上是生活随笔為你收集整理的使用 Python Turtle 制作贪吃蛇游戏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL必知必会第4版读书笔记
- 下一篇: java excel添加公式_Java