以下是一个简单的Python弹球小游戏的代码示例。这个游戏使用了Pygame库来创建窗口和处理图像。
首先,确保安装了Pygame库:
pip install pygame
然后,可以使用以下代码来创建并运行游戏:
import pygame
import sys
# 初始化Pygame
pygame.init()
# 设置窗口大小
width, height = 800, 500
screen = pygame.display.set_mode((width, height))
# 设置游戏时钟
clock = pygame.time.Clock()
# 定义颜色常量
WHITE = (255, 255, 255)
# 定义球和球架的类
class Ball:
def __init__(self, position, velocity, radius):
self.position = position
self.velocity = velocity
self.radius = radius
self.color = WHITE
def move(self, time_passed):
self.position[0] += self.velocity[0] * (time_passed / 1000.0)
self.position[1] += self.velocity[1] * (time_passed / 1000.0)
def draw(self, screen):
pygame.draw.circle(screen, self.color, self.position, self.radius)
class Paddle:
def __init__(self, position, width, height):
self.position = position
self.width = width
self.height = height
self.color = WHITE
self.velocity = 5
def move_left(self):
self.position[0] -= self.velocity
def move_right(self):
self.position[0] += self.velocity
def draw(self, screen):
pygame.draw.rect(screen, self.color, (self.position[0], self.position[1], self.width, self.height))
# 实例化球和球架
ball = Ball([width / 2, height / 2], [3, -3], 10)
paddle = Paddle([width / 2 - 20, height - 20], 40, 10)
# 游戏循环标志
running = True
# 主游戏循环
while running:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
paddle.move_left()
elif event.key == pygame.K_RIGHT:
paddle.move_right()
# 更新游戏状态
time_passed = clock.tick()
ball.move(time_passed)
# 判断球是否撞击球架
if ball.position[1] + ball.radius > height - paddle.height and \
ball.position[0] + ball.radius > paddle.position[0] and \
ball.position[0] - ball.radius < paddle.position[0] + paddle.width:
ball.velocity[1] = -ball.velocity[1]
# 判断球是否撞击顶部或底部
if ball.position[1] - ball.radius < 0 or ball.position[1] + ball.radius > height:
ball.velocity[1] = -ball.velocity[1]