游戏代码编辑

游戏玩家 设置

player_x = WIDTH // 2 - player_size //游戏设置

clock = pygame.time.Clock()

score = 0

game_over = False

font = pygame.font.SysFont(None, 36)

 

def draw_player(x, y):

    pygame.draw.rect(screen, BLUE, (x, y, player_size, player_size))

 

def create_obstacle():

    x = random.randint(0, WIDTH - player_size)

    y = -player_size

    obstacles.append([x, y])

 

def draw_obstacles():

    for obstacle in obstacles:

        pygame.draw.rect(screen, RED, (obstacle[0], obstacle[1], player_size, player_size))

 

def update_obstacles():

    global score

    for i, obstacle in enumerate(obstacles):

        obstacle[1] += obstacle_speed

        if obstacle[1] > HEIGHT:

            obstacles.pop(i)

            score += 1

 

def check_collision():

    for obstacle in obstacles:

        if (player_x < obstacle[0] + player_size and

            player_x + player_size > obstacle[0] and

            player_y < obstacle[1] + player_size and

            player_y + player_size > obstacle[1]):

            return True

    return False

 

def show_score():

    score_text = font.render(f"得分: {score}", True, BLACK)

    screen.blit(score_text, (10, 10))

 

def show_game_over():

    game_over_text = font.render("游戏结束! 按R键重新开始", True, BLACK)

    screen.blit(game_over_text, (WIDTH//2 - 180, HEIGHT//2 - 18))

 游戏主循环

while True:

    for event in pygame.event.get():

        if event.type == pygame.QUIT:

            pygame.quit()

            sys.exit()

        if event.type == pygame.KEYDOWN and game_over:

            if event.key == pygame.K_r:

                重置游戏

                game_over = False

                score = 0

                player_x = WIDTH // 2 - player_size // 2

                obstacles = []

    

    if not game_over:

        # 玩家移动

        keys = pygame.key.get_pressed()

        if keys[pygame.K_LEFT] and player_x > 0:

            player_x -= player_speed

        if keys[pygame.K_RIGHT] and player_x < WIDTH - player_size:

            player_x += player_speed

        

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值