python中的pygame弹球游戏代码_pygame弹球游戏

这篇博客介绍了如何使用Python的pygame模块创建一个简单的弹球游戏。游戏中包含了一个可移动的挡板,当小球碰到挡板时会改变方向。玩家可以通过键盘控制挡板移动,防止小球落地。游戏会在小球触底时结束并显示反弹次数,按回车键可以重新开始游戏。
摘要由CSDN通过智能技术生成

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值