pygame实现弹球游戏


Posted in Python onApril 14, 2020

本文实例为大家分享了pygame实现弹球游戏的具体代码,供大家参考,具体内容如下

pygame弹球游戏

写的很简陋
pip install pygame 安装pygame模块

代码,复制运行即可

import pygame
import random

pygame.init()

win = pygame.display.set_mode((600, 600)) # 画布窗口的大小
pygame.display.set_caption("弹球游戏") # 窗口标题

x, y = 300, 0 # 方块的起点
width, height = 10, 10 # 方块的宽,高
speed = 1 # 速度


def _randomOK():
  return random.randint(0, 1)


stop = False
_random = _randomOK()

str1 = "暂停中"
baffle = 250
status = 0

count = 0
top = 0
while True:
  # 刷新频率, 小球移动速度
  pygame.time.Clock().tick(1000)

  for event in pygame.event.get():
    # 窗口x事件
    if event.type == pygame.QUIT:
      exit(0)
    elif event.type == pygame.KEYDOWN:
      # 回车事件
      if event.key == 13:
        str1 = "暂停中"
        stop = not stop
        if status == 1:
          x, y = 300, 0

  keys = pygame.key.get_pressed()
  if stop:
    pygame.display.set_caption(str1) # 窗口标题
    continue
  if y >= 590:
    status = 1
    stop = not stop
    str1 = "游戏结束,回车重新开始,反弹次数" + str(count)
    count = 0

  pygame.display.set_caption("弹球游戏") # 窗口标题
  if y == 0:
    top = 0
  if top == 0:
    if _random == 0: # 向下左弹
      x -= speed
      y += speed
    elif _random == 1:
      x += speed
      y += speed
  else:
    if _random == 0: # 向上左弹
      x -= speed
      y -= speed
    elif _random == 1: # 向上右弹
      x += speed
      y -= speed
  # 方向箭头响应
  if keys[pygame.K_LEFT]:
    baffle -= speed
    if baffle < 0:
      baffle = 0

  if keys[pygame.K_RIGHT]:
    baffle += speed
    if baffle > 500:
      baffle = 500
  # 碰撞逻辑
  if 500 <= y <= 520:
    print(x, y)
    print(baffle)
    # y 高度坐标 200 x 宽度坐标 200
    # x坐标加300 大于 宽度初始坐标, 小于 宽度+300
    if baffle <= x <= baffle + 100:
      count += 1
      top = 1

  # 防止跑出边界
  if x > win.get_size()[0] - width:
    _random = _randomOK()
    x = win.get_size()[0] - width

  if x < 0:
    _random = _randomOK()
    x = 0

  if y > win.get_size()[1] - height:
    _random = _randomOK()
    y = win.get_size()[1] - height

  if y < 0:
    _random = _randomOK()
    y = 0

  # 将每一帧的底色先填充成黑色
  win.fill((64, 158, 255))
  # 画方块
  pygame.draw.rect(win, (255, 0, 0), (x, y, width, height))
  # 挡板设置,
  pygame.draw.rect(win, (255, 255, 255), (baffle, 500, 100, 20))
  # 更新画布
  pygame.display.update()
pygame.quit()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python正规则表达式学习指南
Aug 02 Python
Python中将字典转换为列表的方法
Sep 21 Python
关于Django外键赋值问题详解
Aug 13 Python
Python使用遗传算法解决最大流问题
Jan 29 Python
Django ManyToManyField 跨越中间表查询的方法
Dec 18 Python
解决pyinstaller打包pyqt5的问题
Jan 08 Python
Python设计模式之桥接模式原理与用法实例分析
Jan 10 Python
Python pip替换为阿里源的方法步骤
Jul 02 Python
Python求两点之间的直线距离(2种实现方法)
Jul 07 Python
简单了解为什么python函数后有多个括号
Dec 19 Python
python中delattr删除对象方法的代码分析
Dec 15 Python
anaconda python3.8安装后降级
Jun 11 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
Apr 13 #Python
Python request操作步骤及代码实例
Apr 13 #Python
jupyter notebook插入本地图片的实现
Apr 13 #Python
Python BeautifulReport可视化报告代码实例
Apr 13 #Python
解决jupyter notebook 出现In[*]的问题
Apr 13 #Python
超全Python图像处理讲解(多模块实现)
Apr 13 #Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
Apr 13 #Python
You might like
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
jquery中动态效果小结
2010/12/16 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
文本框只能输入数字的js代码(含小数点)
2016/07/10 Javascript
javascript深拷贝和浅拷贝详解
2017/02/14 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
ES6新增的math,Number方法
2017/08/06 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
2019/08/20 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
JavaScript实现移动端弹窗后禁止滚动
2020/05/25 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
nestjs中异常过滤器Exceptionfilter的具体使用
2021/02/07 Javascript
[00:53]2015国际邀请赛 中国区预选赛一触即发
2015/05/14 DOTA
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
在Python中使用SQLite的简单教程
2015/04/29 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
使用Rasterio读取栅格数据的实例讲解
2019/11/26 Python
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
美国婚礼和派对礼品网站:Kate Aspen(新娘送礼会、迎婴派对)
2018/03/28 全球购物
.NET概念性的面试题
2012/02/29 面试题
医学院校毕业生自荐信范文
2014/01/01 职场文书
作弊检讨书1000字
2014/02/01 职场文书
公司授权委托书范文
2014/08/02 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
2014年标准化工作总结
2014/12/17 职场文书
餐饮食品安全责任书
2015/01/29 职场文书