中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python如何實現簡單貪吃蛇小游戲

發布時間:2022-06-08 13:46:20 來源:億速云 閱讀:188 作者:iii 欄目:開發技術

本篇內容介紹了“python如何實現簡單貪吃蛇小游戲”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

1. 導入游戲庫

import pgzrun
import random

2.游戲初始化

# 窗口大小
WIDTH = 600
HEIGHT = 480
# 貪吃蛇
bodys = [ [100,100],[80,100], [60,100], [40,100], [20,100]]
head = [100,100]
d = 'right'
# 食物
food = [290,290]
# 得分
score=0

3.游戲窗口繪制

def draw():
#清空屏幕
screen.clear()
# 繪制網格
for i in range(1,24):
screen.draw.line((0,i*20),(600,i*20),'gray')
for i in range(1,30):
screen.draw.line((i*20,0),(i*20,480),'gray')
#繪制蛇
for body in bodys:
rect = Rect(body,(20,20))
screen.draw.filled_rect(rect,(0,0,255))
inner = [body[0]+2,body[1]+2]
rect = Rect(inner, (15, 15),center='center')
screen.draw.filled_rect(rect, (0, 0, 180))
# 繪制頭
rect = Rect(head, (20, 20))
screen.draw.filled_rect(rect, (0, 200,0))
inner = [head[0] + 2, head[1] + 2]
rect = Rect(inner, (15, 15))
screen.draw.filled_rect(rect, (0, 255, 12))
# 繪制食物
screen.draw.filled_circle(food,10, '#ffddee')
# 繪制得分
screen.draw.text('score:'+str(score),(20, 20), color="orange",fontsize=30)

4.蛇的移動功能

def run():
global food,d,head,bodys,score
# 新增一個格子的身體
if d=='right':
head[0] += 20
elif d=='left':
head[0] -= 20
elif d=='up':
head[1] -= 20
else:
head[1] += 20
bodys.insert(0,list(head))
if head[0] == food[0]-10 and head[1] == food[1] - 10:
food = [random.randint(1,30)*20-10,random.randint(1,20)*20-10]
score+=1
if score>3:
clock.unschedule(run)
clock.schedule_interval(run, 0.1)
else:
bodys.pop()
# 撞墻后重新開始
if head[0]<0 or head[0]>580 or head[1]<0 or head[1]>480 or head in
bodys[1:]:
# 蛇回到初始位置
bodys = [[100, 100], [80, 100], [60, 100], [40, 100], [20, 100]]
head = [100, 100]
# 方向向右
d = 'right'
# 得分清零
score=0
clock.unschedule(run)
clock.schedule_interval(run, 0.3)

5.按鍵控制蛇的行走方向

# 按鍵控制蛇的行走方向
def on_key_down(key):
global d
# 改變方向
if key == keys.DOWN and d != 'up':
d = 'down'
if key == keys.UP and d != 'down':
d = 'up'
if key == keys.LEFT and d != 'right':
d = 'left'
if key == keys.RIGHT and d != 'left':
d = 'right'

6.啟動游戲

# 定時設置
clock.schedule_interval(run, 0.3)
# 播放音樂
music.play('music.mp3')
# 啟動游戲
pgzrun.go()

完整代碼

# 1.導入庫
import pgzrun
import random

# 2.初始化
# 窗口大小
WIDTH = 600
HEIGHT = 480
# 貪吃蛇
bodys = [[100, 100], [80, 100], [60, 100], [40, 100], [20, 100]]
head = [100, 100]
d = 'right'
# 食物
food = [290, 290]
# 得分
score = 0

# 3.游戲窗口繪制
def draw():
    # 清空屏幕
    screen.clear()
    # 繪制網格
    for i in range(1, 24):
        screen.draw.line((0, i * 20), (600, i * 20), 'gray')
    for i in range(1, 30):
        screen.draw.line((i * 20, 0), (i * 20, 480), 'gray')
    # 繪制蛇
    for body in bodys:
        rect = Rect(body, (20, 20))
        screen.draw.filled_rect(rect, (0, 0, 255))
        inner = [body[0] + 2, body[1] + 2]
        rect = Rect(inner, (15, 15), center='center')
        screen.draw.filled_rect(rect, (128, 0, 128)) # 紫色

    # 繪制頭
    rect = Rect(head, (20, 20))
    screen.draw.filled_rect(rect, (0, 200, 0))
    inner = [head[0] + 2, head[1] + 2]
    rect = Rect(inner, (15, 15))
    screen.draw.filled_rect(rect, (0, 255, 12))
    # 繪制食物 顏色為紅色
    screen.draw.filled_circle(food, 10, '#ff0000')
    # 繪制得分
    screen.draw.text('score:' + str(score), (20, 20), color="red", fontsize=30)

# 4.蛇的移動功能
def run():
    global food, d, head, bodys, score
    # 新增一個格子的身體
    if d == 'right':
        head[0] += 20
    elif d == 'left':
        head[0] -= 20
    elif d == 'up':
        head[1] -= 20
    else:
        head[1] += 20
    bodys.insert(0, list(head))
    if head[0] == food[0] - 10 and head[1] == food[1] - 10:
        food = [random.randint(1, 30) * 20 - 10, random.randint(1, 20) * 20 - 10]
        score += 1
        if score > 10:
            clock.unschedule(run)
            clock.schedule_interval(run, 0.1)
    else:
        bodys.pop()
    # 撞墻后重新開始
    if head[0] < 0 or head[0] > 580 or head[1] < 0 or head[1] > 480 or head in bodys[1:]:
        # 蛇回到初始位置
        bodys = [[100, 100], [80, 100], [60, 100], [40, 100], [20, 100]]
        head = [100, 100]
        # 方向向右
        d = 'right'
        # 得分清零
        score = 0
        clock.unschedule(run)
        clock.schedule_interval(run, 0.3)


# 按鍵控制蛇的行走方向
def on_key_down(key):
    global d
    # 改變方向
    if key == keys.DOWN and d != 'up':
        d = 'down'
    if key == keys.UP and d != 'down':
        d = 'up'
    if key == keys.LEFT and d != 'right':
        d = 'left'
    if key == keys.RIGHT and d != 'left':
        d = 'right'

# 6.啟動游戲
# 定時設置
clock.schedule_interval(run, 0.3)
# 播放音樂
music.play('music.mp3')
# 啟動游戲
pgzrun.go()

“python如何實現簡單貪吃蛇小游戲”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

清水县| 黄山市| 永登县| 阜平县| 公安县| 吉隆县| 米林县| 西峡县| 汶上县| 翁牛特旗| 黄大仙区| 聂拉木县| 庆云县| 芒康县| 五常市| 吉木萨尔县| 沙坪坝区| 清水河县| 义马市| 定日县| 崇信县| 宝山区| 上栗县| 鲁山县| 宁远县| 东明县| 滁州市| 二连浩特市| 集贤县| 黑龙江省| 吕梁市| 呼伦贝尔市| 房山区| 玉屏| 黎平县| 苍梧县| 上杭县| 镇安县| 龙川县| 万荣县| 腾冲县|