pygame实现弹球游戏
作者:@licheng 发布时间:2023-05-26 20:38:44
标签:pygame,弹球
本文实例为大家分享了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


猜你喜欢
- 本文实例讲述了Python md5与sha1加密算法。分享给大家供大家参考,具体如下:MD5MD5的全称是Message-Digest Al
- 1.为什么需要创建虚拟环境?虚拟环境是隔离应用确切依赖项的好办法。此类隔离避免了全局 Python 环境中的冲突,有助于进行测试和协作。随着
- 描述:使用QtDesignner设计界面,pyQt5+python3实现主体方法制作的猜数字游戏。游戏规则:先选择游戏等级:初级、中级、高级
- 从句法上看,协程与生成器类似,都是定义体中包含 yield 关键字的函数。可是,在协程中, yield 通常出现在表达式的右边(例如, da
- Flask web上传获取图像Image读取并使用图片上传界面后端@app.route('/upload')def uplo
- 什么是LSTM1、LSTM的结构我们可以看出,在n时刻,LSTM的输入有三个:当前时刻网络的输入值Xt;上一时刻LSTM的输出值ht-1;上
- 结论:copy复制会比等号复制慢。但是copy复制为值复制,改变原切片的值不会影响新切片。而等号复制为指针复制,改变原切片或新切片都会对另一
- 一封电子邮件的旅程是:MUA:Mail User Agent——邮件用户代理。(即类似Outlook
- 像素误差看自己设计好上线的网站,偶尔会发觉像素行间出现了弹性空间,总在不经意间蹦出一定的差距。有些页面很难发现,比如活动类页面,这类页面多呈
- 本文实例讲述了flask框架自定义过滤器。分享给大家供大家参考,具体如下:除了一些内置的join length safe等过滤器外, fla
- 1、安装 python3sudo apt install python32、卸载 python2.7 (可选)sudo apt remove
- 这个可以说属性选择符的JS版,用来遴选元素是适合不过。在开始之前,我们复习一下CSS2的属性选择符,JQuery高手可以跳过。属性选择符:名
- 第一种:import socket import fcntl import struct def get_ip_address(ifname
- XML(可扩展标记语言)已成为Web应用中数据表示和数据交换的标准,随着Internet的快速发展,尤其是电子商务,Web服务等应用的广泛使
- GoroutineGoroutine 是 Golang 提供的一种轻量级线程,我们通常称之为「协程」,相比较线程,创建一个协程的成本是很低的
- import shutil高级的文件,文件夹,压缩包的处理模块,也主要用于文件的拷贝shutil.copyfileobj(fsrc,fdst
- 你是否对获得MySQL改变字符集的实际操作感到十分头疼?不用急,以下的文章将会给你正确的解答方案,以下的文章主要是介绍获得MySQL改变字符
- 废话少说,上干活。for的基本操作for是用来循环的,是从某个对象那里依次将元素读取出来。看下面的例子,将已经学习过的数据对象用for循环一
- 与大多数程序员一样,我经常需要标识存在于文本文档中的部件和结构,这些文档包括:日志文件、配置文件、分隔的数据以及格式更自由的(但还是半结构化
- 做图像识别的时候需要在图片中画出特定大小和角度的矩形框,自己写了一个函数,给定的输入是图片名称,矩形框的位置坐标,长宽和角度,直接输出画好矩