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之字典,你还记得吗?
Sep 20 Python
python3简单实现微信爬虫
Apr 09 Python
Python实现快速排序和插入排序算法及自定义排序的示例
Feb 16 Python
python获取当前运行函数名称的方法实例代码
Apr 06 Python
PyQt实现界面翻转切换效果
Apr 20 Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 Python
python取数作为临时极大值(极小值)的方法
Oct 15 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
Oct 11 Python
Python中断多重循环的几种方式详解
Feb 10 Python
python圣诞树编写实例详解
Feb 13 Python
python json 递归打印所有json子节点信息的例子
Feb 27 Python
Python中seaborn库之countplot的数据可视化使用
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 中执行系统外部命令
2006/10/09 PHP
PHP 上传文件的方法(类)
2009/07/30 PHP
解析PHP中如何将数组变量写入文件
2013/06/06 PHP
PHP实现加密的几种方式介绍
2015/02/22 PHP
php实现socket推送技术的示例
2017/12/20 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
JavaScript学习笔记之数组去重
2016/03/23 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
vue实现留言板todolist功能
2017/08/16 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
2017/10/29 jQuery
React Native 图片查看组件的方法
2018/03/01 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
2018/06/24 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
js实现随机圆与矩形功能
2020/10/29 Javascript
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
简单实现python进度条脚本
2017/12/18 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
python 实现A*算法的示例代码
2018/08/13 Python
浅谈Python脚本开头及导包注释自动添加方法
2018/10/27 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
python梯度下降算法的实现
2020/02/24 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
Html5 实现微信分享及自定义内容的流程
2019/08/20 HTML / CSS
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
车库门开启器、遥控器和零件:Chamberlain
2019/04/09 全球购物
GetYourGuide台湾:预订旅游活动、景点和旅游项目
2019/06/10 全球购物
中文系学生自荐信范文
2013/11/13 职场文书
工作表扬信的范文
2014/01/10 职场文书
学校课外活动总结
2014/05/08 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL