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获取Linux系统下的本机IP地址代码分享
Nov 07 Python
在Python的Flask框架中实现全文搜索功能
Apr 20 Python
Python找出9个连续的空闲端口
Feb 01 Python
神经网络相关之基础概念的讲解
Dec 29 Python
python 利用pandas将arff文件转csv文件的方法
Feb 12 Python
Flask框架钩子函数功能与用法分析
Aug 02 Python
pytorch 修改预训练model实例
Jan 18 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
Feb 26 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
Feb 27 Python
python实现遍历文件夹图片并重命名
Mar 23 Python
Python基础教程(一)——Windows搭建开发Python开发环境
Jul 20 Python
python 管理系统实现mysql交互的示例代码
Dec 06 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 session 预定义数组
2009/03/16 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
PHP截断标题且兼容utf8和gb2312编码
2013/09/22 PHP
PHP答题类应用接口实例
2015/02/09 PHP
PHP图像裁剪缩略裁切类源码及使用方法
2016/01/07 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
IE6已终止操作问题的2种情况及解决
2014/04/23 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
js尾调用优化的实现
2019/05/23 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
如何构建 vue-ssr 项目的方法步骤
2020/08/04 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
利用JS判断元素是否为数组的方法示例
2021/01/08 Javascript
Python随机生成手机号、数字的方法详解
2017/07/21 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
python 实现turtle画图并导出图片格式的文件
2019/12/07 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
基于Tensorflow一维卷积用法详解
2020/05/22 Python
Flask中jinja2的继承实现方法及实例
2021/03/03 Python
经典c++面试题四
2015/05/14 面试题
汽车运用工程系毕业生自荐信
2013/12/27 职场文书
计算机大学生职业生涯规划书范文
2014/02/19 职场文书
传播学专业毕业生自荐书
2014/07/01 职场文书
2014年药店店长工作总结
2014/11/17 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书
完美处理python与anaconda环境变量的冲突问题
2021/04/07 Python