游戏代码编辑
游戏玩家 设置
player_x = WIDTH // 2 - player_size //游戏设置
clock = pygame.time.Clock()
score = 0
game_over = False
font = pygame.font.SysFont(None, 36)
def draw_player(x, y):
pygame.draw.rect(screen, BLUE, (x, y, player_size, player_size))
def create_obstacle():
x = random.randint(0, WIDTH - player_size)
y = -player_size
obstacles.append([x, y])
def draw_obstacles():
for obstacle in obstacles:
pygame.draw.rect(screen, RED, (obstacle[0], obstacle[1], player_size, player_size))
def update_obstacles():
global score
for i, obstacle in enumerate(obstacles):
obstacle[1] += obstacle_speed
if obstacle[1] > HEIGHT:
obstacles.pop(i)
score += 1
def check_collision():
for obstacle in obstacles:
if (player_x < obstacle[0] + player_size and
player_x + player_size > obstacle[0] and
player_y < obstacle[1] + player_size and
player_y + player_size > obstacle[1]):
return True
return False
def show_score():
score_text = font.render(f"得分: {score}", True, BLACK)
screen.blit(score_text, (10, 10))
def show_game_over():
game_over_text = font.render("游戏结束! 按R键重新开始", True, BLACK)
screen.blit(game_over_text, (WIDTH//2 - 180, HEIGHT//2 - 18))
游戏主循环
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN and game_over:
if event.key == pygame.K_r:
重置游戏
game_over = False
score = 0
player_x = WIDTH // 2 - player_size // 2
obstacles = []
if not game_over:
# 玩家移动
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and player_x > 0:
player_x -= player_speed
if keys[pygame.K_RIGHT] and player_x < WIDTH - player_size:
player_x += player_speed