基于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代码真的很爽
Aug 26 Python
Python中的赋值、浅拷贝、深拷贝介绍
Mar 09 Python
python分析网页上所有超链接的方法
May 08 Python
Python实现将xml导入至excel
Nov 20 Python
使用Python读写及压缩和解压缩文件的示例
Jul 08 Python
用Python进行简单图像识别(验证码)
Jan 19 Python
Pycharm导入Python包,模块的图文教程
Jun 13 Python
Python generator生成器和yield表达式详解
Aug 08 Python
关于python中plt.hist参数的使用详解
Nov 28 Python
python实现滑雪游戏
Feb 22 Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 Python
如何通过命令行进入python
Jul 06 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
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
2020/10/27 PHP
Javascript的一种模块模式
2010/09/08 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
2017/08/15 jQuery
AngularJS实现图片上传和预览功能的方法分析
2017/11/08 Javascript
js+html获取系统当前时间
2017/11/10 Javascript
Angular4学习笔记router的简单使用
2018/03/30 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
js实现列表按字母排序
2020/08/11 Javascript
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
Python创建xml的方法
2015/03/10 Python
python多线程方式执行多个bat代码
2016/06/07 Python
使用tensorflow实现AlexNet
2017/11/20 Python
python3 selenium 切换窗口的几种方法小结
2018/05/21 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
对Keras中predict()方法和predict_classes()方法的区别说明
2020/06/09 Python
Django框架请求生命周期实现原理
2020/11/13 Python
德国最大的拼图在线商店:Puzzle.de
2016/12/17 全球购物
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
2014年预备党员学习两会心得体会
2014/03/17 职场文书
迎新晚会主持词
2014/03/24 职场文书
自强之星事迹材料
2014/05/12 职场文书
暑假安全保证书
2015/02/28 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang
Python自然语言处理之切分算法详解
2021/04/25 Python
解读Vue组件注册方式
2021/05/15 Vue.js
logback 实现给变量指定默认值
2021/08/30 Java/Android