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

Pygame新手使用pygame.Rect移动图片无响应问题求助

问题排查结果
  • 核心错误:red = pygame.Rect(50,50,50,50) 这行代码写在了游戏主循环while run的内部,每一轮循环都会重新生成一个坐标固定为(50,50)的Rect对象,后续的red.x += 1仅在当前循环帧生效,下一轮循环又会被重置回初始坐标,因此图片看起来完全不会移动。
  • 可选优化点:原代码没有设置帧率控制,图片移动速度会受设备性能影响,出现速率不稳定的情况。
修正后的完整代码
import pygame
pygame.init() # 补充pygame初始化,避免部分环境下功能异常
win = pygame.display.set_mode((800,600))
clock = pygame.time.Clock() # 初始化时钟对象控制帧率
run = True
image = pygame.image.load("spaceship.png")
image = pygame.transform.scale(image,(50,50))
# 将Rect初始化移到循环外部,仅执行一次
red = pygame.Rect(50,50,50,50) 
while run:
    # 固定帧率为60,保证移动速度稳定
    clock.tick(60)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    win.fill((255,255,255))
    win.blit(image,(red.x,red.y))
    red.x += 1
    # 可选逻辑:超出屏幕右边界后重置位置,避免移出屏幕后看不到
    if red.x > 800:
        red.x = -50
    pygame.display.update()
pygame.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:36:04