python打砖块游戏算法设计分析_python小游戏--打砖块的实现与讲解(python自学总结系列)...

我在系统地学习了python之后,觉得python带给我很多乐趣,因此在网络平台GitHub上寻找了这个小游戏,这个小游戏是一个很经典的游戏,只是打砖块,但是可以很好地入门并体现python的乐趣。

1.引言

本次论文的背景在于我系统地学习了python之后对自己前段时间学习过程的一个小的总结,我在GitHub上选择这个游戏的原因的我觉得这个小游戏的整体代码并不算复杂,但也不是太过简单,其中,比较麻烦的是碰撞的检测,球碰到墙壁之后要根据设定好的角度进行计算与方向调转,当球弹到下方,没有碰到板子的话就让球继续往前走,达到区域之外之后要进行游戏结束,球的位置需要不停判断,然后每接到球5次之后,需要把球速提高,提升游戏体验。

2.系统结构

(1)开发环境:python3.6(python3.0+)

(2)相关模块:

import pygame

from pygame.locals import *

import sys,random,time,math

(3)原理:利用pygame模块搭建游戏屏幕大小、背景,按键控制小球移动、碰撞,己方球体与墙壁或板子重叠,球体方向改变。当球体到达墙壁和板子以外的区域边界时,游戏结束。

(4)Pygame游戏模块主框架:

set_mode  #窗口设置

球与球拍等的绘制:4e806db16d206fda7490049958235420bc1e4827.png球与球拍等的绘制

球的碰撞检测与球速增加1e3457175d23e4c8a88577df776f1b59bb125a80.png球的碰撞检测与球速增加

游戏边界限定fa4de400b43e780c5a513f8b5b12289ca38850ae.png游戏边界限定

分数设定8744a3173bc1b0602d518a617446c380cae7fde0.png分数设定

3.实现代码

1)创建游戏窗口335c64708a252211ac9537b4d91650dd99747576.png创建游戏窗口

2)创建一个球a116d9fc27da562664c224a78a48b649bd183299.png创建一个球

3)创建一个球拍

fb8c7ad3258a7133e72bfeb89b4431f779e39e87.png创建一个球拍

4)创建分数类

3893721a9a390e72b8da34bbeec0c46bc72c35da.png创建分数类

5)游戏结束之后7b8f396a39402ad8c544b8152e6dd59b5793c764.png游戏结束之后

6)判断游戏胜利18c515e3653c974fb9861d3d911c38ec7f0ab2d2.png判断游戏胜利

7)碰撞检测

1.球与窗口边框的碰撞检测00de1d1747af98377db49d26cee6afd8dfbb3597.png球与窗口边框的碰撞检测

球与球拍的碰撞检测

2b82032336a9193ed5254da92b28a7fa23429956.png球与球拍的碰撞检测

3.球与砖块的碰撞检测

41d3f8904601d8fd7f308ea68c348ea9bb636354.png球与砖块的碰撞检测

8)主程序的设计

2fca65230ba2a7ffc76f7d9b6f53427f47d8e634.png主程序的设计

4.实验结果861ffa12bf282f9d57885d1872559d3ced183ce5.png实验结果

ae7fe205789aa7aeb93a9f79bfd022f0ac165a20.png实验结果

注意:游戏代码来源于网络,本文章仅供个人学习,如有侵权,联系删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值