1. 引入必要的库

python
import pygame
from pygame.locals import *
2. 初始化Pygame
python
pygame.init()
3. 设置游戏窗口大小和标题
python
window_width, window_height = 640, 480
window = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption("Desktop Pinball")
4. 设置球和挡板的初始位置和速度
python
ball_x, ball_y = window_width//2, window_height//2
ball_speed_x, ball_speed_y = 2, 2
paddle_x, paddle_y = window_width//2-50, window_height-20
paddle_speed_x = 0
5. 创建游戏循环
python
running = True
while running:
# 处理事件
for event in pygame.event.get():
if event.type == QUIT:
running = False
elif event.type == KEYDOWN:
if event.key == K_LEFT:
paddle_speed_x = -3
elif event.key == K_RIGHT:
paddle_speed_x = 3
elif event.type == KEYUP:
if event.key == K_LEFT or event.key == K_RIGHT:
paddle_speed_x = 0
# 更新球和挡板的位置
ball_x += ball_speed_x
ball_y += ball_speed_y
paddle_x += paddle_speed_x
# 碰撞检测
if ball_x < 0 or ball_x > window_width:
ball_speed_x = -ball_speed_x
if ball_y < 0 or ball_y > window_height:
ball_speed_y = -ball_speed_y
if ball_x > paddle_x and ball_x < paddle_x + 100 and ball_y > paddle_y:
ball_speed_y = -ball_speed_y
# 绘制游戏界面
window.fill((0, 0, 0))
pygame.draw.circle(window, (255, 255, 255), (ball_x, ball_y), 10)
pygame.draw.rect(window, (255, 255, 255), (paddle_x, paddle_y, 100, 10))
pygame.display.update()
# 设置帧率
pygame.time.delay(10)
6. 退出游戏
python
pygame.quit()
完整代码如下:
python
import pygame
from pygame.locals import *
pygame.init()
window_width, window_height = 640, 480
window = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption("Desktop Pinball")
ball_x, ball_y = window_width//2, window_height//2
ball_speed_x, ball_speed_y = 2, 2
paddle_x, paddle_y = window_width//2-50, window_height-20
paddle_speed_x = 0
running = True
while running:
# 处理事件
for event in pygame.event.get():
if event.type == QUIT:
running = False
elif event.type == KEYDOWN:
if event.key == K_LEFT:
paddle_speed_x = -3
elif event.key == K_RIGHT:
paddle_speed_x = 3
elif event.type == KEYUP:
if event.key == K_LEFT or event.key == K_RIGHT:
paddle_speed_x = 0
# 更新球和挡板的位置
ball_x += ball_speed_x
ball_y += ball_speed_y
paddle_x += paddle_speed_x
# 碰撞检测
if ball_x < 0 or ball_x > window_width:
ball_speed_x = -ball_speed_x
if ball_y < 0 or ball_y > window_height:
ball_speed_y = -ball_speed_y
if ball_x > paddle_x and ball_x < paddle_x + 100 and ball_y > paddle_y:
ball_speed_y = -ball_speed_y
# 绘制游戏界面
window.fill((0, 0, 0))
pygame.draw.circle(window, (255, 255, 255), (ball_x, ball_y), 10)
pygame.draw.rect(window, (255, 255, 255), (paddle_x, paddle_y, 100, 10))
pygame.display.update()
# 设置帧率
pygame.time.delay(10)
pygame.quit()

查看详情

查看详情