用python做一个吃豆豆的游戏
以下是一个简单的用Python实现的吃豆豆游戏:
import pygame
import random
# 初始化Pygame
pygame.init()
# 游戏窗口的尺寸
width, height = 800, 600
screen = pygame.display.set_mode((width, height))
# 游戏角色的尺寸
player_size = 50
enemy_size = 30
# 游戏角色的初始位置
player_pos = [width/2, height-2*player_size]
enemy_pos = [random.randint(0, width-enemy_size), 0]
enemy_list = [enemy_pos]
# 设置游戏角色的移动速度
speed = 10
# 设置游戏分数
score = 0
# 游戏结束标志
game_over = False
# 设置游戏时钟
clock = pygame.time.Clock()
# 游戏循环
while not game_over:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
if event.type == pygame.KEYDOWN:
x = player_pos[0]
y = player_pos[1]
if event.key == pygame.K_LEFT:
x -= player_size
elif event.key == pygame.K_RIGHT:
x += player_size
player_pos = [x, y]
# 更新敌人角色的位置
for idx, enemy_pos in enumerate(enemy_list):
if enemy_pos[1] >= 0 and enemy_pos[1] < height:
enemy_pos[1] += speed
else:
enemy_list.pop(idx)
score += 1
# 更新游戏窗口
screen.fill((0, 0, 0))
for enemy_pos in enemy_list:
pygame.draw.rect(screen, (255, 0, 0), (enemy_pos[0], enemy_pos[1], enemy_size, enemy_size))
pygame.draw.rect(screen, (0, 255, 0), (player_pos[0], player_pos[1], player_size, player_size))
# 检测游戏角色与敌人角色的碰撞
for enemy_pos in enemy_list:
if detect_collision(player_pos, enemy_pos):
game_over = True
# 显示分数
font = pygame.font.SysFont(None, 40)
text = font.render("Score: " + str(score), True, (255, 255, 255))
screen.blit(text, (10, 10))
# 更新游戏窗口
pygame.display.update()
# 设置游戏帧率
clock.tick(30)
# 退出游戏
pygame.quit()
这个游戏中,玩家通过键盘的左右键控制游戏角色的移动,目标是躲避敌人角色,尽可能吃掉更多的敌人角色。游戏窗口中显示了分数,当游戏角色与敌人角色碰撞时,游戏结束。游戏使用了Pygame库来实现图形界面和游戏逻辑
原文地址: https://www.cveoy.top/t/topic/hO1E 著作权归作者所有。请勿转载和采集!