基于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删除java文件头上版权信息的方法
Jul 31 Python
按日期打印Python的Tornado框架中的日志的方法
May 02 Python
将Python代码打包为jar软件的简单方法
Aug 04 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
浅谈pycharm下找不到sqlalchemy的问题
Dec 03 Python
python定时检测无响应进程并重启的实例代码
Apr 22 Python
Python基础教程之if判断,while循环,循环嵌套
Apr 25 Python
Python中判断子串存在的性能比较及分析总结
Jun 23 Python
PyTorch: 梯度下降及反向传播的实例详解
Aug 20 Python
python 实现检验33品种数据是否是正态分布
Dec 09 Python
python实现门限回归方式
Feb 29 Python
sklearn和keras的数据切分与交叉验证的实例详解
Jun 19 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 文件缓存的性能测试
2010/04/25 PHP
解析php中heredoc的使用方法
2013/06/17 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
2014/11/17 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
2016/03/21 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
JavaScript 格式字符串的应用
2010/03/29 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
extjs每个组件要设置唯一的ID否则会出错
2014/06/15 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
详解Node.js串行化流程控制
2017/05/04 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
2017/06/08 Javascript
vue 点击按钮实现动态挂载子组件的方法
2018/09/07 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
解决layui数据表格table的横向滚动条显示问题
2019/09/04 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
js实现简单点赞操作
2020/03/17 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
美国知名艺术画网站:Art.com
2017/02/09 全球购物
配置管理计划的主要内容有哪些
2014/06/20 面试题
最新党员的自我评价分享
2013/11/04 职场文书
采购主管的岗位职责
2013/12/17 职场文书
销售工作决心书
2015/02/04 职场文书
当幸福来敲门英文观后感
2015/06/01 职场文书
python 爬取天气网卫星图片
2021/06/07 Python
服务器间如何实现文件共享
2022/05/20 Servers