基于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 相关文章推荐
Linux中Python 环境软件包安装步骤
Mar 31 Python
windows及linux环境下永久修改pip镜像源的方法
Nov 28 Python
python中hashlib模块用法示例
Oct 30 Python
使用Python读取大文件的方法
Feb 11 Python
python同时遍历数组的索引和值的实例
Nov 15 Python
Python 3.8新特征之asyncio REPL
May 28 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
Aug 17 Python
关于Python3 lambda函数的深入浅出
Nov 27 Python
Flask框架搭建虚拟环境的步骤分析
Dec 21 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
Apr 16 Python
python神经网络学习 使用Keras进行简单分类
May 04 Python
Python中使用tkFileDialog实现文件选择、保存和路径选择
May 20 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
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
php 不同编码下的字符串长度区分
2009/09/26 PHP
php set_time_limit()函数的使用详解
2013/06/05 PHP
php如何获取文件的扩展名
2015/10/28 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
2017/02/25 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
控制文字内容的显示与隐藏示例
2014/06/11 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
vue2.0父子组件间通信的实现方法
2017/04/19 Javascript
使用webpack-dev-server处理跨域请求的方法
2018/04/18 Javascript
vue源码解析之事件机制原理
2018/04/21 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
Vue 事件的$event参数=事件的值案例
2021/01/29 Vue.js
[01:03:03]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
python模拟登陆阿里妈妈生成商品推广链接
2014/04/03 Python
Python算法应用实战之队列详解
2017/02/04 Python
Python之re操作方法(详解)
2017/06/14 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
MYSQL支持事务吗
2013/08/09 面试题
几个判断型的面试题
2012/07/03 面试题
给水排水工程专业毕业生推荐信
2013/10/28 职场文书
农业局学习党的群众路线教育实践活动心得体会
2014/03/07 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
销售岗位职责范本
2014/06/12 职场文书
学校安全责任书范本
2014/07/23 职场文书
教师个人年度总结
2015/02/11 职场文书
预备党员半年考察意见
2015/06/01 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server
python基于opencv批量生成验证码的示例
2021/04/28 Python