如何在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
相关产品推荐
相关产品推荐

