Pygame游戏实战四:打砖块

 介绍模块

本游戏使用的是由Pycharm中的pygame模块来实现的,也可以在python中运行。通过Pygame制作一个打砖块,通过击打砖块来得到更多的分数,看看这个是你小时候玩的游戏吗?

最小开发框架

详情请看此文章:
Pygame游戏模块介绍二:最小开发框架代码_pygame最小开发框架_牧子川的博客-CSDN博客

Pygame和sys模块

import pygame # 制作游戏时要使用的模块
import sys # python的标准库,对内部各功能模块进行初始化创建,系统模块

random模块

需要在屏幕上随机生成食物的位置,通过随机一个位置来表示食物的位置

from random import randint

详情请看此文章:Pygame游戏模块介绍一:random模块简介_random 范围_牧子川的博客-CSDN博客

相关功能  

【童年游戏】打砖块

砖块设定

每次游戏出现的砖块数量、位置、大小均不同

    for row in range(brick_rows):
        for col in range(brick_cols):
            brick_x = col * (brick_width + 5) + 5  # +5 是为了增加砖块之间的间隔
            brick_y = row * (brick_height + 5) + 50
            brick_width = random.randint(40, 80)  # 随机砖块的宽度
            bricks.append(pygame.Rect(brick_x, brick_y, brick_width, brick_height))

小球设置

    ball_x = random.randint(ball_radius, WINDOW_WIDTH - ball_radius)
    ball_y = random.randint(ball_radius, WINDOW_HEIGHT // 2)

    ball_speed_x = 5
    ball_speed_y = 5

碰撞检测

        # 碰撞检测和游戏逻辑
        if ball_x < ball_radius or ball_x > WINDOW_WIDTH - ball_radius:
            ball_speed_x *= -1
        if ball_y < ball_radius:
            ball_speed_y *= -1
        elif ball_y > WINDOW_HEIGHT - ball_radius:
            initialize_game()  # 重新初始化游戏
            game_over = True  # 游戏结束

键盘移动

        keys = pygame.key.get_pressed()
        if keys[pygame.K_LEFT] and paddle_x > 0:
            paddle_x -= paddle_speed
        if keys[pygame.K_RIGHT] and paddle_x < WINDOW_WIDTH - paddle_width:
            paddle_x += paddle_speed

游戏结束

        game_over_text = font.render("Game Over!", True, BRICK_COLOR)
        window.blit(game_over_text, (WINDOW_WIDTH // 2 - 100, WINDOW_HEIGHT // 2 - 20))

挡板与小球

        # 绘制板
        pygame.draw.rect(window, BRICK_COLOR, (paddle_x, paddle_y, paddle_width, paddle_height))

        # 绘制弹球
        pygame.draw.circle(window, BRICK_COLOR, (ball_x, ball_y), ball_radius)

图片界面  

扩展可添加功能

1.砖块改变,打击砖块出现不同的分数

2.增加鼠标控制

3.小球移动速度改变

4.添加背景音乐

5.砖块需要击打多次才能得分

源码获取

GitHub 打砖块

 欢迎关注我的公众号:@AI算法与电子竞赛    

硬性的标准其实限制不了无限可能的我们,所以啊!少年们加油吧!

猜你喜欢

转载自blog.csdn.net/qq_48764574/article/details/133893883