Python贪吃蛇小游戏代码示例
Python贪吃蛇小游戏代码示例
想要学习如何使用Python编写一个简单的贪吃蛇游戏吗?这篇文章为你提供了一个完整的代码示例,并附带详细的注释,帮助你理解每个步骤的逻辑。
代码pythonimport pygameimport random
初始化游戏pygame.init()
游戏区域的宽度和高度width = 640height = 480
定义颜色black = (0, 0, 0)white = (255, 255, 255)red = (255, 0, 0)green = (0, 255, 0)
创建游戏窗口window = pygame.display.set_mode((width, height))pygame.display.set_caption('贪吃蛇')
控制游戏循环变量game_over = False
蛇头的位置和初始速度x = width // 2y = height // 2snake_size = 20x_change = 0y_change = 0
食物的位置food_x = round(random.randrange(0, width - snake_size) / 20) * 20food_y = round(random.randrange(0, height - snake_size) / 20) * 20
记录蛇的长度snake_length = 1snake_body = []snake_speed = 10
游戏时钟clock = pygame.time.Clock()
显示得分font_style = pygame.font.SysFont(None, 30)
def show_score(score): score_text = font_style.render('得分:' + str(score), True, white) window.blit(score_text, [10, 10])
def draw_snake(snake_body): for i in snake_body: pygame.draw.rect(window, green, [i[0], i[1], snake_size, snake_size])
def game_loop(): game_over = False game_end = False
# 蛇头的位置和初始速度 x = width // 2 y = height // 2 snake_size = 20 x_change = 0 y_change = 0
# 记录蛇的长度 snake_length = 1 snake_body = []
# 食物的位置 food_x = round(random.randrange(0, width - snake_size) / 20) * 20 food_y = round(random.randrange(0, height - snake_size) / 20) * 20
while not game_over:
while game_end == True: window.fill(black) font_style = pygame.font.SysFont(None, 30) end_score = font_style.render('得分:' + str(snake_length - 1), True, white) window.blit(end_score, [width // 2.5, height // 2]) pygame.display.update()
for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_q: game_over = True game_end = False if event.key == pygame.K_c: game_loop()
for event in pygame.event.get(): if event.type == pygame.QUIT: game_over = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: x_change = -snake_size y_change = 0 elif event.key == pygame.K_RIGHT: x_change = snake_size y_change = 0 elif event.key == pygame.K_UP: y_change = -snake_size x_change = 0 elif event.key == pygame.K_DOWN: y_change = snake_size x_change = 0
x += x_change y += y_change if x >= width or x < 0 or y >= height or y < 0: game_end = True
window.fill(black) pygame.draw.rect(window, red, [food_x, food_y, snake_size, snake_size]) snake_head = [] snake_head.append(x) snake_head.append(y) snake_body.append(snake_head) if len(snake_body) > snake_length: del snake_body[0]
for i in snake_body[:-1]: if i == snake_head: game_end = True
draw_snake(snake_body) show_score(snake_length - 1)
pygame.display.update()
if x == food_x and y == food_y: food_x = round(random.randrange(0, width - snake_size) / 20) * 20 food_y = round(random.randrange(0, height - snake_size) / 20) * 20 snake_length += 1
clock.tick(snake_speed)
pygame.quit()
game_loop()
代码说明
- 首先,我们导入必要的库:
pygame用于游戏开发,random用于生成随机数。- 然后,我们初始化游戏窗口,设置标题,定义颜色等。- 接下来,我们定义了蛇的初始位置、速度、长度等变量,以及食物的位置。-show_score函数用于显示当前得分。-draw_snake函数用于绘制蛇的身体。-game_loop函数是游戏的核心循环,它处理用户输入、更新游戏状态、绘制游戏画面等。
如何运行代码
- 确保你已经安装了 Python 和 pygame 库。2. 将代码复制到一个 Python 文件中,例如
snake_game.py。3. 在命令行中运行python snake_game.py。
希望这个代码示例能帮助你入门 Python 游戏开发!
原文地址: https://www.cveoy.top/t/topic/boVE 著作权归作者所有。请勿转载和采集!