You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pygame中实现方块上下移动?现有代码仅支持左右移动

实现方块上下移动的修改方案

要让方块支持上下移动,只需要添加Y轴位置变量并处理上下方向键的输入即可,以下是修改后的完整代码:

import pygame, sys
from pygame.locals import QUIT


def draw_rectangle(surface, rectangle):
    pygame.draw.rect(surface, (0, 255, 0), rectangle)


def main():
    pygame.init()

    # 初始化
    DISPLAYSURF = pygame.display.set_mode((400, 300))
    pygame.display.set_caption('Rectangles and Squares')

    game_clock = pygame.time.Clock()

    # 变量
    x_position = 100
    y_position = 100  # 添加Y轴位置变量

    # 游戏循环
    running = True
    while running:
        # 更新部分

        # 更新delta_time
        delta_time = game_clock.tick(60)/100

        # 处理事件
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()

        # 处理键盘输入
        keys = pygame.key.get_pressed()
        if keys[pygame.K_LEFT]:
            x_position -= 10 * delta_time
        if keys[pygame.K_RIGHT]:
            x_position += 10 * delta_time
        if keys[pygame.K_UP]:  # 处理上方向键
            y_position -= 10 * delta_time
        if keys[pygame.K_DOWN]:  # 处理下方向键
            y_position += 10 * delta_time

        # 绘制部分
        DISPLAYSURF.fill((128, 128, 128))

        draw_rectangle(DISPLAYSURF, pygame.Rect(x_position, y_position, 50, 50))  # 使用y_position

        pygame.display.flip()

if __name__ == "__main__":
    main()

关键改动说明

  • 添加了y_position变量,初始值设为100,和原代码中方块的初始Y坐标保持一致
  • 在键盘输入处理逻辑中,增加了对K_UP和K_DOWN按键的检测,按下上方向键时减小y_position,按下下方向键时增大y_position(Pygame中Y轴向下为正方向)
  • 绘制矩形时,将原来固定的Y坐标100替换为y_position,让方块的Y轴位置跟随变量更新

内容的提问来源于stack exchange,提问作者hal man

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 11:45:37