基于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中处理字符串之isalpha()方法的使用
May 18 Python
Python fileinput模块使用实例
May 28 Python
浅谈Python中函数的参数传递
Jun 21 Python
python rsa 加密解密
Mar 20 Python
django 2.0更新的10条注意事项总结
Jan 05 Python
Python3中详解fabfile的编写
Jun 24 Python
python调用百度语音识别实现大音频文件语音识别功能
Aug 30 Python
Python设计模式之原型模式实例详解
Jan 18 Python
浅谈Python小波分析库Pywavelets的一点使用心得
Jul 09 Python
Python爬虫如何应对Cloudflare邮箱加密
Jun 24 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 Python
Python创建自己的加密货币的示例
Mar 01 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代码
2012/06/08 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
php实现的递归提成方案实例
2015/11/14 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
php实现微信企业转账功能
2018/10/02 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
js文本框输入点回车触发确定兼容IE、FF等
2013/11/19 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
2015/08/21 Javascript
使用CoffeeScrip优美方式编写javascript代码
2015/10/28 Javascript
Bootstrap基本组件学习笔记之列表组(11)
2016/12/07 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
详解小程序退出页面时清除定时器
2019/04/28 Javascript
react 组件传值的三种方法
2019/06/03 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
python代码制作configure文件示例
2014/07/28 Python
python中常用检测字符串相关函数汇总
2015/04/15 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
Python xlwt设置excel单元格字体及格式
2020/04/18 Python
python3使用SMTP发送简单文本邮件
2018/06/19 Python
python简单贪吃蛇开发
2019/01/28 Python
python使用配置文件过程详解
2019/12/28 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
Python urllib.request对象案例解析
2020/05/11 Python
Python3爬虫中Ajax的用法
2020/07/10 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
财务人员个人自荐信范文
2013/09/26 职场文书
网上签名寄语活动留言
2014/01/18 职场文书
高中生家长寄语大全
2014/04/03 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书