Hello,各位同学,攀哥今天给大家分享一个用Python制作童年经典游戏的教程,详细教程已经码出来了,快收藏起来!答应我,别让它吃灰,可以吗?要做彼此的天使!
走过路过不要错过,点个关注再撤退,点不了吃亏,点不了上当,O(∩_∩)O哈哈~
游戏源码素材,请关注+评论区留言获取哈
一、游戏简介
1.1 游戏课程描述
打砖块游戏,也称为弹珠台游戏,是一种经典的街机和电子游戏,玩家通常通过控制一个小球发射器来击打从屏幕上方落下的各种形状的砖块。目标是消除所有的砖块,同时尽可能多地收集积分和特殊奖励。游戏的操作通常包括左右移动发射器、调整角度以及按压发射键。随着关卡的提升,难度会增加,比如速度加快、砖块变得更难以击中,甚至会出现移动的敌人和特殊的障碍物。玩家需要快速反应和策略规划才能在游戏中取得高分。这类游戏以其简单易学和高度娱乐性深受玩家喜爱。
该项目使用了 Python 语言和 Pygame 库进行实现,旨在帮助初学者理解游戏开发的基本概念和实践。目前该游戏除了常规打砖块功能以外,还设计了自定义关卡砖块的摆放。简单易学,界面美观。
1.2 游戏效果截图
1.2.1 欢迎页面
本项目的欢迎界面设计的并不复杂,通过简单的绘制图片以及文字实现。这里需要掌握的是如何绘制图片和文字。
1.2.2 游戏页面
不同的关卡设置的砖块的显示方式是不一样的,可以通过游戏的地图文件修改砖块的摆放
1.2.3 暂停和结束页面
游戏设计了暂停页面,游戏开始后按 p 键即可暂停游戏,然后按 R 键即可恢复游戏
二、游戏实现
2.1 创建项目
打开 pycharm 按照如图所示,创建项目并导入图片资源:
- font 中存放项目中所需要的字体文件
- image 中存放项目中所需的所有的图片资源
- pojo 中存放项目中涉及到的实体文件
- venv 是自动生成的目录可以不用理会
- main.py 是游戏的启动主程序文件
2.2 游戏窗体搭建
2.2.1 新建游戏常量文件
在 pojo 中新建一个 constant.py ,该文件用来定义一些游戏中的常量数据,方便后期通过调整该文件参数,来实现游戏难易程度以及显示状态的转变。
"""
墨轩(攀哥出品)
Author:Administrator
学习使人强大,懒惰易坠深渊
"""
# 封装游戏中的常量数据
# 游戏屏幕的宽度
SCREEN_WIDTH = 512
# 游戏屏幕的高度
SCREEN_HEIGHT = 768
# 游戏帧速率
FPS = 60
2.2.2 初始化窗体
在 main.py 中,初始化 pygame,并按照常量文件中定义的屏幕的宽度和高度,创建游戏窗体
"""
Author: 墨轩(攀哥出品)
游戏的主程序
"""
import pygame
import sys
from pojo.constant import *
# 初始化pygame模块
pygame.init()
# 根据定义的屏幕尺寸创建游戏屏幕
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
# 设置游戏标题
pygame.display.set_caption("欢乐打砖块~墨轩(攀哥出品,盗版必究)")
if __name__ == '__main__':
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
2.2.3 显示背景图片
在 main.py 中加载背景图片,由于背景图片像素是 755*1334,这个要比游戏窗体要大,因此我们需要将背景图先缩放到游戏窗体的同等大小,然后再画背景图。
绘制背景图
【参考代码】
"""
Author: 墨轩(攀哥出品)
游戏的主程序
"""
import pygame
import sys
from pojo.constant import *
# 初始化pygame模块
pygame.init()
# 根据定义的屏幕尺寸创建游戏屏幕
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
# 设置游戏标题
pygame.display.set_caption("欢乐打砖块~墨轩(攀哥出品,盗版必究)")
# 获取时钟对象,方便设置游戏的帧速率
clock = pygame.time.Clock()
# 加载背景图
background = pygame.image.load("image/BG.png")
# 设置背景图片的大小(缩放到游戏窗体大小)
background = pygame.transform.scale(background, (SCREEN_WIDTH, SCREEN_HEIGHT))
if __name__ == '__main__':
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# 绘制背景图