基于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正则表达式抓取成语网站
Nov 20 Python
Python判断列表是否已排序的各种方法及其性能分析
Jun 20 Python
Python获取CPU、内存使用率以及网络使用状态代码
Feb 08 Python
解决python nohup linux 后台运行输出的问题
May 11 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
Jun 13 Python
python通过tcp发送xml报文的方法
Dec 28 Python
Python3.5内置模块之time与datetime模块用法实例分析
Apr 27 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
Django处理多用户类型的方法介绍
May 18 Python
Python3+Appium实现多台移动设备操作的方法
Jul 05 Python
django在开发中取消外键约束的实现
May 20 Python
pandas针对excel处理的实现
Jan 15 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
MySQL授权问题总结
2007/05/06 PHP
php 归并排序 数组交集
2011/05/10 PHP
php设计模式 Template (模板模式)
2011/06/26 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
js tab 选项卡
2009/04/26 Javascript
JQuery jsonp 使用示例代码
2009/08/12 Javascript
dojo随手记 gird组件引用
2011/02/24 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
js数组实现权重概率分配
2017/09/12 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
回顾Javascript React基础
2019/06/15 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
vue项目中openlayers绘制行政区划
2020/12/24 Vue.js
linux下python抓屏实现方法
2015/05/22 Python
Python操作MongoDB详解及实例
2017/05/18 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
python实现感知器
2017/12/19 Python
pandas 获取季度,月度,年度首尾日期的方法
2018/04/11 Python
OpenCV python sklearn随机超参数搜索的实现
2020/01/17 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
python爬取代理IP并进行有效的IP测试实现
2020/10/09 Python
优秀中专生推荐信
2013/11/17 职场文书
领导的自我鉴定
2013/12/28 职场文书
初一体育教学反思
2014/01/29 职场文书
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
罚站检讨书
2015/01/29 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书