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 相关文章推荐
Python2.5/2.6实用教程 入门基础篇
Nov 29 Python
Python程序员开发中常犯的10个错误
Jul 07 Python
基于Python的身份证号码自动生成程序
Aug 15 Python
使用Python脚本生成随机IP的简单方法
Jul 30 Python
Python 绘图和可视化详细介绍
Feb 11 Python
Python使用openpyxl读写excel文件的方法
Jun 30 Python
python九九乘法表的实例
Sep 26 Python
Django rest framework基本介绍与代码示例
Jan 26 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
Feb 07 Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
Feb 25 Python
python_tkinter弹出对话框创建
Mar 20 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实现 使用PHP数组内部指针操作函数
2010/10/12 PHP
PHP与C#分别格式化文件大小的代码
2011/05/14 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
解析PHP可变函数的经典用法
2013/06/20 PHP
简单的php文件上传(实例)
2013/10/27 PHP
基于jquery的cookie的用法
2011/01/10 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
JavaScript 数组的深度复制解析
2016/11/02 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
Vue+Element-U实现分页显示效果
2020/11/15 Javascript
python通过pil模块将raw图片转换成png图片的方法
2015/03/16 Python
让python在hadoop上跑起来
2016/01/27 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
浅谈DataFrame和SparkSql取值误区
2018/06/09 Python
详解django中使用定时任务的方法
2018/09/27 Python
Python并行分布式框架Celery详解
2018/10/15 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
Python是怎样处理json模块的
2020/07/16 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
英国演唱会订票网站:Ticket Selection
2018/03/27 全球购物
2014年应届大学生自我评价
2014/01/09 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
班级活动总结格式
2014/08/30 职场文书
校园广播稿精选
2014/10/01 职场文书
期末个人总结范文
2015/02/13 职场文书
护士岗位竞聘书
2015/09/15 职场文书
Java字符串逆序方法详情
2022/03/21 Java/Android
JS实现简单九宫格抽奖
2022/06/28 Javascript