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实现excel读写数据
Mar 02 Python
pandas 对series和dataframe进行排序的实例
Jun 09 Python
python实现简易内存监控
Jun 21 Python
Python 找到列表中满足某些条件的元素方法
Jun 26 Python
Python面向对象类的继承实例详解
Jun 27 Python
在ubuntu16.04中将python3设置为默认的命令写法
Oct 31 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
Nov 01 Python
Python 读取串口数据,动态绘图的示例
Jul 02 Python
python os.fork() 循环输出方法
Aug 08 Python
Python Django 页面上展示固定的页码数实现代码
Aug 21 Python
python实现超市商品销售管理系统
Nov 22 Python
python pygame入门教程
Jun 01 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 常用的header头部定义汇总
2015/06/19 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
js模拟弹出效果代码修正版
2008/08/07 Javascript
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
js中prototype用法详细介绍
2013/11/14 Javascript
javascript文本框内输入文字倒计数的方法
2015/02/24 Javascript
Javascript中For In语句用法实例
2015/05/14 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
vue多层嵌套路由实例分析
2019/03/19 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
2019/10/30 Javascript
Python中关于字符串对象的一些基础知识
2015/04/08 Python
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
基于python脚本实现软件的注册功能(机器码+注册码机制)
2016/10/09 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
python3实现表白神器
2019/04/09 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
浅析python实现动态规划背包问题
2020/12/31 Python
市场营销毕业生自荐信
2013/11/23 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
驾驶员培训方案
2014/05/01 职场文书
歌颂祖国演讲稿
2014/05/04 职场文书
考察邀请函范文
2015/01/31 职场文书
员工表扬信怎么写
2015/05/05 职场文书
话题作文之呼唤
2019/12/18 职场文书
Redis基本数据类型String常用操作命令
2022/06/01 Redis