基于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实现的二叉树算法和kmp算法实例
Apr 25 Python
Python使用urllib模块的urlopen超时问题解决方法
Nov 08 Python
Django Highcharts制作图表
Aug 27 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
Jan 09 Python
python 获取图片分辨率的方法
Jan 08 Python
Python/Django后端使用PIL Image生成头像缩略图
Apr 30 Python
java判断三位数的实例讲解
Jun 10 Python
django中forms组件的使用与注意
Jul 08 Python
python多进程(加入进程池)操作常见案例
Oct 21 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
Apr 08 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
Jun 29 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 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
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
德生PL550的电路分析
2021/03/02 无线电
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
php遍历所有文件及文件夹的方法深入解析
2013/06/08 PHP
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
JSON为什么那样红为什么要用json(另有洞天)
2012/12/26 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
2015/03/11 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
2017/01/04 Javascript
Node.js中用D3.js的方法示例
2017/01/16 Javascript
Vue.js结合bootstrap实现分页控件
2017/03/10 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
2017/04/28 Javascript
使用NestJS开发Node.js应用的方法
2018/12/03 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
Javascript异步编程async实现过程详解
2020/04/02 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
Django 大文件下载实现过程解析
2019/08/01 Python
自定义html标记替换html5新增元素
2008/10/17 HTML / CSS
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
2014年基层党组织公开承诺书
2014/03/29 职场文书
学生会竞聘书范文
2014/03/31 职场文书
奖学金个人总结
2015/03/04 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
红高粱观后感
2015/06/10 职场文书
幼儿园园长六一致辞
2015/07/31 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
初二物理教学反思
2016/02/19 职场文书
年终奖金发放管理制度,中小企业适用,拿去救急吧!
2019/07/12 职场文书
Django对接elasticsearch实现全文检索的示例代码
2021/08/02 Python
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle