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类的多重继承问题深入分析
Nov 09 Python
在Python中使用dict和set方法的教程
Apr 27 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
Feb 21 Python
Python+OpenCV实现车牌字符分割和识别
Mar 31 Python
PyQt5 窗口切换与自定义对话框的实例
Jun 20 Python
python中通过selenium简单操作及元素定位知识点总结
Sep 10 Python
pycharm 中mark directory as exclude的用法详解
Feb 14 Python
浅谈python多线程和多线程变量共享问题介绍
Apr 17 Python
在keras中model.fit_generator()和model.fit()的区别说明
Jun 17 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
Jun 23 Python
解决pycharm修改代码后第一次运行不生效的问题
Feb 06 Python
Python Spyder 调出缩进对齐线的操作
Feb 26 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 格式化数字的时候注意数字的范围
2010/04/13 PHP
Destoon模板制作简明教程
2014/06/20 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
JqGrid web打印实现代码
2011/05/31 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
Grunt入门教程(自动任务运行器)
2015/08/06 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
Bootstrap导航简单实现代码
2017/03/06 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
vue实现购物车列表
2020/06/30 Javascript
python求解水仙花数的方法
2015/05/11 Python
Python Pandas找到缺失值的位置方法
2018/04/12 Python
对python 中class与变量的使用方法详解
2019/06/26 Python
django settings.py 配置文件及介绍
2019/07/15 Python
python装饰器的特性原理详解
2019/12/25 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
关于递归的一道.NET面试题
2013/05/12 面试题
机电专业体育教师求职信
2013/09/21 职场文书
施工人员岗位职责
2013/12/12 职场文书
黄金酒广告词
2014/03/21 职场文书
《假如》教学反思
2014/04/17 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
2014年幼儿园安全工作总结
2014/11/10 职场文书
求职自荐信范文(优秀篇)
2015/03/27 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis
Android自定义ScrollView实现阻尼回弹
2022/04/01 Java/Android