找回密码
 中文实名注册
搜索
查看: 839|回复: 3

是男人就上一百层

[复制链接]

26

主题

34

回帖

2791

积分

金牌会员

积分
2791
发表于 2025-7-5 11:21:49 | 显示全部楼层 |阅读模式
购买主题 已有 6 人购买  本主题需向作者支付 2 金钱 才能浏览
回复

使用道具 举报

10

主题

74

回帖

1218

积分

金牌会员

积分
1218
发表于 2025-7-5 16:38:19 | 显示全部楼层
File "C:\Users\Administrator\AppData\Local\Temp\codemao-hNivuN/temp.py", line 26
    BLUE = (0, 0, 255)    # 蓝色
                       ^
SyntaxError: invalid character in identifier
回复

使用道具 举报

4

主题

74

回帖

5103

积分

论坛元老

积分
5103
发表于 2025-7-8 17:32:11 | 显示全部楼层
import pygame

import sys

import random



# 初始化 Pygame

pygame.init()



# 设置屏幕宽高

SCREEN_WIDTH = 800

SCREEN_HEIGHT = 600

screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

pygame.display.set_caption("蓝色背景、黄色角色和多个红色障碍物")



# 定义颜色

BLUE = (0, 0, 255)  # 蓝色

DARK_BLUE = (0, 0, 200)  # 深蓝色

YELLOW = (255, 255, 0)  # 黄色

RED = (255, 0, 0)  # 红色

WHITE = (255, 255, 255)  # 白色



# 玩家设置

PLAYER_WIDTH = 50

PLAYER_HEIGHT = 50

player_x = SCREEN_WIDTH // 2 - PLAYER_WIDTH // 2

player_y = SCREEN_HEIGHT - PLAYER_HEIGHT - 10

player_speed = 5



# 障碍物设置

OBSTACLE_RADIUS = 20

OBSTACLE_COUNT = 5  # 障碍物数量

obstacles = []  # 存储多个障碍物

for _ in range(OBSTACLE_COUNT):

    obstacle_x = random.randint(OBSTACLE_RADIUS, SCREEN_WIDTH - OBSTACLE_RADIUS)

    obstacle_y = random.randint(-SCREEN_HEIGHT, 0)  # 障碍物初始位置随机

    obstacle_speed = random.randint(2, 6)  # 障碍物速度随机

    obstacles.append({"x": obstacle_x, "y": obstacle_y, "speed": obstacle_speed})



# 背景滚动设置

background_y = 0

background_speed = 2



# 计分设置

score = 0

font = pygame.font.Font(None, 36)  # 分数字体



# 游戏主循环

clock = pygame.time.Clock()

running = True



def draw_player(x, y):

    """绘制玩家"""

    pygame.draw.rect(screen, YELLOW, (x, y, PLAYER_WIDTH, PLAYER_HEIGHT))  # 黄色玩家



def draw_obstacle(x, y):

    """绘制障碍物"""

    pygame.draw.circle(screen, RED, (x, y), OBSTACLE_RADIUS)  # 红色圆形障碍物



def draw_score(score):

    """绘制分数"""

    score_surface = font.render(f"Score: {score}", True, WHITE)

    screen.blit(score_surface, (10, 10))  # 分数显示在屏幕左上角



while running:

    for event in pygame.event.get():

        if event.type == pygame.QUIT:

            running = False



    # 获取按键输入

    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 < SCREEN_WIDTH - PLAYER_WIDTH:

        player_x += player_speed

    if keys[pygame.K_UP] and player_y > 0:

        player_y -= player_speed

    if keys[pygame.K_DOWN] and player_y < SCREEN_HEIGHT - PLAYER_HEIGHT:

        player_y += player_speed



    # 背景滚动逻辑

    background_y += background_speed

    if background_y >= SCREEN_HEIGHT:

        background_y = 0



    # 移动障碍物

    for obstacle in obstacles:

        obstacle["y"] += obstacle["speed"]

        if obstacle["y"] > SCREEN_HEIGHT + OBSTACLE_RADIUS:  # 超出屏幕后,重置位置

            obstacle["y"] = -OBSTACLE_RADIUS

            obstacle["x"] = random.randint(OBSTACLE_RADIUS, SCREEN_WIDTH - OBSTACLE_RADIUS)

            obstacle["speed"] = random.randint(2, 6)  # 随机速度



        # 检测碰撞

        if (player_x < obstacle["x"] < player_x + PLAYER_WIDTH or player_x < obstacle["x"] + OBSTACLE_RADIUS < player_x + PLAYER_WIDTH) and \

           (player_y < obstacle["y"] < player_y + PLAYER_HEIGHT or player_y < obstacle["y"] + OBSTACLE_RADIUS < player_y + PLAYER_HEIGHT):

            print("游戏结束!")

            running = False



    # 增加分数

    score += 1  # 每帧加 1 分(可根据需要调整加分规则)



    # 绘制背景

    screen.fill((0, 0, 0))  # 清屏

    pygame.draw.rect(screen, BLUE, (0, background_y - SCREEN_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT))  # 蓝色背景

    pygame.draw.rect(screen, DARK_BLUE, (0, background_y, SCREEN_WIDTH, SCREEN_HEIGHT))  # 深蓝色背景



    # 绘制玩家

    draw_player(player_x, player_y)



    # 绘制障碍物

    for obstacle in obstacles:

        draw_obstacle(obstacle["x"], obstacle["y"])



    # 绘制分数

    draw_score(score)



    # 更新屏幕

    pygame.display.flip()



    # 控制帧率

    clock.tick(60)



# 退出 Pygame

pygame.quit()

sys.exit()
回复

使用道具 举报

1

主题

29

回帖

119

积分

注册会员

积分
119
发表于 2025-7-8 18:13:04 | 显示全部楼层
:):):):):):):)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 中文实名注册

本版积分规则

快速回复 返回顶部 返回列表