pygame实现弹球游戏

作者:@licheng 时间:2023-05-26 20:38:44 

本文实例为大家分享了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()

来源:https://blog.csdn.net/qq_37794658/article/details/105456363

标签:pygame,弹球
0
投稿

猜你喜欢

  • 详解Python 使用 selenium 进行自动化测试或者协助日常工作

    2023-09-05 03:44:19
  • 解决PDF 转图片时丢文字的一种可能方式

    2022-06-12 18:29:38
  • MySQL查看数据库表容量大小的方法示例

    2024-01-14 23:19:47
  • Kettle连接Oracle数据库方法((Oracle19c&Oracle11g))

    2024-01-22 04:59:56
  • python ansible服务及剧本编写

    2022-11-18 02:51:20
  • Python3使用turtle绘制超立方体图形示例

    2021-02-01 14:21:07
  • Django 项目布局方法(值得推荐)

    2022-08-22 12:44:22
  • Python函数参数定义及传递方式解析

    2021-10-19 21:28:25
  • 最新idea2021最新激活超详细教程

    2023-08-08 01:50:17
  • SQLSERVER 创建索引实现代码

    2012-04-13 12:17:05
  • Python MySQLdb模块连接操作mysql数据库实例

    2024-01-18 03:10:26
  • PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例

    2023-11-16 16:21:40
  • Python地理地图可视化folium标记点弹窗设置代码(推荐)

    2022-08-18 17:02:57
  • 浅析pip安装第三方库及pycharm中导入第三方库的问题

    2023-01-24 22:47:45
  • SQLServer查询某个时间段购买过商品的所有用户

    2024-01-17 20:02:10
  • Oracle11g完全卸载的详细步骤(超管用)

    2024-01-25 17:04:43
  • MySQL中使用流式查询避免数据OOM

    2024-01-23 01:23:00
  • 详解用 python-docx 创建浮动图片

    2021-07-16 13:32:12
  • Python网络编程之TCP与UDP协议套接字用法示例

    2023-12-07 06:34:45
  • 一个不错的js+css二级分类菜单代码

    2007-12-28 21:22:00
  • asp之家 网络编程 m.aspxhome.com