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正则表达式re模块详细介绍
May 29 Python
用python登录Dr.com思路以及代码分享
Jun 25 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 Python
图文讲解选择排序算法的原理及在Python中的实现
May 04 Python
Python的Flask框架应用调用Redis队列数据的方法
Jun 06 Python
Python原始字符串与Unicode字符串操作符用法实例分析
Jul 22 Python
对python requests的content和text方法的区别详解
Oct 11 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
教你一步步利用python实现贪吃蛇游戏
Jun 27 Python
python使用socket实现的传输demo示例【基于TCP协议】
Sep 24 Python
通过 Python 和 OpenCV 实现目标数量监控
Jan 05 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
Mar 09 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数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
如何使用php判断所处服务器操作系统的类型
2013/06/20 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
Yii中的relations数据关联查询及统计功能用法详解
2016/07/14 PHP
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
2016/08/03 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
详解小程序退出页面时清除定时器
2019/04/28 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
微信小程序实现手势滑动卡片效果
2019/08/26 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
[03:37]2015国际邀请赛第四日现场精彩集锦
2015/08/08 DOTA
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
Python Paramiko模块的安装与使用详解
2016/11/18 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
Python: 传递列表副本方式
2019/12/19 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
全球最大化妆品零售网站:SkinStore
2020/10/24 全球购物
行政人员岗位职责
2013/12/08 职场文书
物流司机岗位职责
2013/12/28 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
信访工作汇报材料
2014/10/27 职场文书
领导工作表现评语
2015/01/04 职场文书
欠条格式范本
2015/07/03 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书