日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的pygame库使用方法_python基础教程使用Python第三方库pygame写个贪吃蛇小游戏...

發(fā)布時間:2024/7/23 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的pygame库使用方法_python基础教程使用Python第三方库pygame写个贪吃蛇小游戏... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天看到幾個關(guān)于pygame模塊的博客和視頻,感覺非常有趣,這里照貓畫虎寫了一個貪吃蛇小游戲,目前還有待完善,但是基本游戲功能已經(jīng)實現(xiàn),下面是代碼:

# 導入模塊

import pygame

import random

# 初始化

pygame.init()

w = 720 #窗口寬度

h = 600 #窗口高度

ROW = 30 #行數(shù)

COL = 36 #列數(shù)

#將所有的坐標看作是一個個點,定義點類

class Point:

row = 0

col = 0

def __init__(self, row, col):

self.row = row

self.col = col

def copy(self):

return Point(row = self.row,col = self.col)

#顯示窗口和標題

size = (w, h)

window = pygame.display.set_mode(size)

pygame.display.set_caption('貪吃蛇')

#定義蛇頭坐標

head = Point(row = ROW/2, col = COL/2)

#蛇身體

snake_list = [

Point(row = head.row,col = head.col+1),

Point(row = head.row,col = head.col+2),

Point(row = head.row,col = head.col+3)

]

#產(chǎn)生食物

def pro_food():

#食物不能與蛇重疊

while True:

pos = Point(row=random.randint(1,ROW-2), col=random.randint(1,COL-2))

is_coll = False

if head.row == pos.row and head.col == pos.col:

is_coll = True

for snake in snake_list:

if snake.col == pos.col and snake.row == pos.row:

is_coll = True

break

if not is_coll:

return pos

food = pro_food()

#定義顏色

bg_color = (255, 255, 255)

head_color = (0, 128, 128)

food_color = (255, 255, 0)

snake_color = (200,200,200)

#給定初始方向

dire = 'left'

def rect(point, color):

cell_width = w/COL

cell_height = h/ROW

left = point.col*cell_width

top = point.row*cell_height

pygame.draw.rect(

window, color,

(left,top,cell_width, cell_height, )

)

pass

# 游戲循環(huán)

quit = True

clock = pygame.time.Clock()

while quit:

for event in pygame.event.get():

#退出方式

if event.type == pygame.QUIT:

quit = False

elif event.type == pygame.KEYDOWN:

#鍵盤控制

if event.key == 273 or event.key == 119:

if dire == 'left' or dire == 'right':

dire = 'up'

elif event.key == 274 or event.key == 115:

if dire == 'left' or dire == 'right':

dire = 'down'

elif event.key == 276 or event.key == 97:

if dire == 'up' or dire == 'down':

dire = 'left'

elif event.key == 275 or event.key == 100:

if dire == 'up' or dire == 'down':

dire = 'right'

#吃

eat=(head.row == food.row and head.col == food.col)

if eat:

food = pro_food()

#處理身體

#1.原來的頭換到身體最前端

snake_list.insert(0,head.copy())

#2.刪除身體最后一個

if not eat:

snake_list.pop()

#移動

if dire == 'left':

head.col -= 1

elif dire == 'right':

head.col += 1

elif dire == 'up':

head.row -= 1

elif dire == 'down':

head.row += 1

#檢測:

dead=False

#1.撞墻

if head.col < 0 or head.row< 0 or head.col >= COL or head.row >= ROW:

dead=True

#2.撞自己

for snake in snake_list:

if head.col == snake.col and head.row == snake.row:

dead=True

break

if dead:

print('dead')

quit = False

#繪制背景

pygame.draw.rect(window, bg_color, (0, 0, w, h))

#蛇頭

rect(head, head_color)

#食物

rect(food,food_color)

#蛇身

for snake in snake_list:

rect(snake,snake_color)

pygame.display.flip()

#游戲幀數(shù)

clock.tick(20)

效果:

總結(jié)

到此這篇關(guān)于使用Python第三方庫pygame寫個貪吃蛇小游戲的文章就介紹到這了,更多相關(guān)python 貪吃蛇游戲內(nèi)容請搜索菜鳥教程www.piaodoo.com以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持菜鳥教程www.piaodoo.com!

總結(jié)

以上是生活随笔為你收集整理的python的pygame库使用方法_python基础教程使用Python第三方库pygame写个贪吃蛇小游戏...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。