写一段无限跳跃游戏的代码
时间: 2023-08-24 08:40:38 浏览: 55
以下是一份基于Python Pygame库的无限跳跃游戏代码:
```
import pygame
import random
pygame.init()
# 游戏界面大小
screen_width = 600
screen_height = 800
screen = pygame.display.set_mode((screen_width, screen_height))
# 颜色定义
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
# 游戏元素定义
player_size = 50
player_pos = [screen_width / 2, screen_height - 2 * player_size]
enemy_size = 50
enemy_pos = [random.randint(0, screen_width - enemy_size), 0]
enemy_list = [enemy_pos]
speed = 10
score = 0
# 游戏结束标志
game_over = False
# 时钟对象
clock = pygame.time.Clock()
# 游戏字体
font = pygame.font.Font(None, 25)
# 游戏循环
while not game_over:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
if event.type == pygame.KEYDOWN:
x = player_pos[0]
y = player_pos[1]
if event.key == pygame.K_LEFT:
x -= player_size
elif event.key == pygame.K_RIGHT:
x += player_size
player_pos = [x, y]
# 清除屏幕
screen.fill(BLACK)
# 更新敌人位置
for idx, enemy_pos in enumerate(enemy_list):
if enemy_pos[1] >= 0 and enemy_pos[1] < screen_height:
enemy_pos[1] += speed
else:
enemy_list.pop(idx)
score += 1
# 生成新的敌人
if len(enemy_list) < 3:
enemy_x = random.randint(0, screen_width - enemy_size)
enemy_y = 0
enemy_list.append([enemy_x, enemy_y])
# 绘制敌人
for enemy_pos in enemy_list:
pygame.draw.rect(screen, RED, (enemy_pos[0], enemy_pos[1], enemy_size, enemy_size))
# 更新玩家位置
player_y = player_pos[1]
if player_y <= 0:
player_pos[1] = screen_height - 2 * player_size
score += 1
else:
player_pos[1] = player_y - speed
# 绘制玩家
pygame.draw.rect(screen, WHITE, (player_pos[0], player_pos[1], player_size, player_size))
# 绘制得分
text = font.render("Score: " + str(score), True, WHITE)
screen.blit(text, [0, 0])
# 更新屏幕
pygame.display.update()
# 设置帧率
clock.tick(30)
pygame.quit()
```
这份代码实现了一个无限跳跃游戏,玩家需要控制角色跳跃来躲避从上往下落的障碍物。玩家每跳过一个障碍物就会得到一分,当玩家撞到障碍物或者掉出屏幕时游戏结束。