基于pygame实现童年掌机打砖块游戏


Posted in Python onFebruary 25, 2020

本文为大家分享了童年掌机游戏,基于pygame实现打砖块的具体代码,供大家参考,具体内容如下

项目背景:

小时候有过一个掌机游戏机,里面有俄罗斯方块,打方块等游戏,玩的那叫一个废寝忘食,只是后来玩坏了就没再玩过。今日想学习以下python,就从游戏入手,写一个打方块的游戏,顺便回忆以下童年的乐趣。
此作完全是我学习python和游戏制作的练手作品,用到的python语法和pygame插件的api不会写的很详细,主要记录学习遇到的问题和思路。

基于pygame实现童年掌机打砖块游戏

1、环境准备

1.1.安装python,这里我安装的是3.6.3。(安装教程请自行搜索)
1.2.安装pygame,这里我安装的是1.9.3。(安装教程请自行搜索)
1.3.安装pycharm
1.4.准备素材,打开画图工具,做出一个砖块图片,一个小球图片,一个板子图片。

2、思路整理

回忆游戏流程,整个游戏大致有以下几个步骤
2.1.游戏初始化,载入三种图片。
2.2.点击启动按钮,小球移动,也可以增加暂停功能。
2.3.小球与砖块、板子,左右和上方墙壁的碰撞
2.4.板子与左右墙壁的碰撞(不可超越墙壁)
2.5.小球的落地,游戏结束
2.6.砖块被打完,游戏结束
2.7.计分功能
2.8.音乐~~

3、开整

先从载入图片做起。废话不多说,直接上代码

import pygame
from pygame.locals import *
from sys import exit

# pygame初始化,必须要的
pygame.init()

# 创建窗口
# pygame.display是访问了显示设备
# set_mode方法会返回一个Surface对象,即本程序运行时出现的窗口画面
screen = pygame.display.set_mode((360, 480))
# 设置窗口的名字
pygame.display.set_caption('打砖块')

# 加载图像
# 球
ball = pygame.image.load('img/ball.png')
# 砖块
block = pygame.image.load('img/block.png')
# 板子
board = pygame.image.load('img/board.png')

# 游戏程序一般都需要一个死循环,通过某些条件才可以退出
while True:
 for event in pygame.event.get():
 # 接受退出时间后退出程序
 if event.type == QUIT:
 exit()
 # 把画面背景设置为白色
 screen.fill((255, 255, 255))
 #把上面加载的图片放入到画面中
 # 把球放进去,并设置坐标
 screen.blit(ball, (180, 430))
 # 把砖块放进去,并设置坐标
 # 这里仅放了一个砖块,以后可以做个循环放好多砖块
 screen.blit(block, (20, 20))
 # 把板子放进去,并设置坐标
 screen.blit(board, (150, 450))
 # 刷新画面
 pygame.display.update()

通过上面的代码就可以简单的把图片加载到画面中了

基于pygame实现童年掌机打砖块游戏

接下来还要让小球和板子动起来,下次再写。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python网络编程学习笔记(九):数据库客户端 DB-API
Jun 09 Python
举例讲解如何在Python编程中进行迭代和遍历
Jan 19 Python
Python中使用bidict模块双向字典结构的奇技淫巧
Jul 12 Python
Python中分支语句与循环语句实例详解
Sep 13 Python
Python定义函数功能与用法实例详解
Apr 08 Python
Python2与Python3的区别实例总结
Apr 17 Python
python的移位操作实现详解
Aug 21 Python
Python venv虚拟环境配置过程解析
Jul 08 Python
python 利用zmail库发送邮件
Sep 11 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 15 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
Nov 24 Python
详解Selenium 元素定位和WebDriver常用方法
Dec 04 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
Feb 25 #Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
Feb 25 #Python
Python对wav文件的重采样实例
Feb 25 #Python
python实现打砖块游戏
Feb 25 #Python
Python实现企业微信机器人每天定时发消息实例
Feb 25 #Python
Django 设置多环境配置文件载入问题
Feb 25 #Python
python中resample函数实现重采样和降采样代码
Feb 25 #Python
You might like
PHP中10个不常见却非常有用的函数
2010/03/21 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
2011/05/19 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
2018/10/17 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
PHP开发者必须掌握的6个关键字
2014/04/14 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
node.js从数据库获取数据
2016/05/08 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
AngularJS动态菜单操作指令
2017/04/25 Javascript
Web制作验证码功能实例代码
2017/06/19 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
2018/01/26 Javascript
微信小程序scroll-view横向滑动嵌套for循环的示例代码
2018/09/20 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
2019/01/29 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
js实现微信聊天效果
2020/08/09 Javascript
JavaScript 如何计算文本的行数的实现
2020/09/14 Javascript
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
python3.4中清屏的处理方法
2020/07/06 Python
Python实现给PDF添加水印的方法
2021/01/25 Python
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
精美的手工家居和生活用品:Nkuku
2019/11/01 全球购物
个人实习生的自我评价
2014/02/16 职场文书
责任胜于能力演讲稿
2014/05/20 职场文书
教师党员先进性教育自我剖析材料思想汇报
2014/09/24 职场文书
销售员岗位职责
2015/02/10 职场文书
企业安全生产规章制度
2015/08/06 职场文书
解决vue自定义组件@click点击失效问题
2022/04/30 Vue.js