基于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程序添加图形化界面的教程
Apr 29 Python
在Python中处理字符串之isdecimal()方法的使用
May 20 Python
python Flask实现restful api service
Dec 04 Python
python 处理dataframe中的时间字段方法
Apr 10 Python
详解Python Qt的窗体开发的基本操作
Jul 14 Python
Python Django 封装分页成通用的模块详解
Aug 21 Python
Python 依赖库太多了该如何管理
Nov 08 Python
Python高级property属性用法实例分析
Nov 19 Python
详解python中GPU版本的opencv常用方法介绍
Jul 24 Python
python+selenium自动化实战携带cookies模拟登陆微博
Jan 19 Python
python中if嵌套命令实例讲解
Feb 25 Python
浅析Python实现DFA算法
Jun 26 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 分页类(模仿google)-面试题目解答
2009/09/13 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
JS、CSS加载中的小问题探讨
2013/11/26 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
javascript基本算法汇总
2016/03/09 Javascript
Node之简单的前后端交互(实例讲解)
2017/11/14 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
python中reload(module)的用法示例详解
2017/09/15 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
2019/08/05 Python
详解python 中in 的 用法
2019/12/12 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
css3个性化字体_动力节点Java学院整理
2017/07/12 HTML / CSS
HTML5到底会有什么发展?HTML5的前景展望
2015/07/07 HTML / CSS
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
CHRONEXT英国:您的首选奢华腕表目的地
2020/03/30 全球购物
室内设计实习自我鉴定
2013/09/25 职场文书
应届生财务管理求职信
2013/11/06 职场文书
社会治安综合治理管理责任书
2014/04/16 职场文书
社区矫正工作方案
2014/06/04 职场文书
第一批党的群众路线教育实践活动总结报告
2014/07/03 职场文书
我的未来不是梦演讲稿
2014/09/02 职场文书
2014年电工工作总结
2014/11/20 职场文书
学生检讨书范文
2015/01/27 职场文书
2015年园林绿化工作总结
2015/05/23 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
源码安装apache脚本部署过程详解
2022/09/23 Servers