Pygame图像随旋转移动

0 投票
1 回答
1193 浏览
提问于 2025-04-18 03:11

我现在在旋转方面还是遇到问题(可以看看我之前的问题),所以为了搞清楚情况,我把问题从我的游戏中抽出来,想看看能不能让它在没有其他干扰的情况下旋转。 现在我遇到的问题是,图像在旋转的同时也飞出了屏幕。我没有任何移动的指令,它本来应该只是原地旋转。 这为什么会发生呢?

这是我的代码:

import pygame
import sys

pygame.init()

size = width , height = 400 , 400

screen = pygame.display.set_mode(size)

car = pygame.image.load("Car3.png").convert()
carRect = car.get_rect()
carRect = carRect.move(200 , 200)

running = True

while running:

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
           running = False

    car = pygame.transform.rotozoom(car ,30  , 1)

    screen.blit(car , carRect)
    pygame.display.flip()

pygame.quit()
sys.exit()

备注: 我之所以使用rotozoom,是因为我读到在旋转时图像可能会自动调整大小,从而引发一些问题。

1 个回答

0

你打算通过这两行代码实现什么呢?

carRect = car.get_rect()
carRect = carRect.move(200 , 200)

你为什么在这里调用Rect.move这个函数呢?

你的问题可能是,图像的绘制是从左上角开始的。我不知道你图像的具体尺寸,但有可能是因为在旋转过程中,左上角的位置发生了变化,导致图像“旋转”出窗口了?

现在有点晚了,要不然我会自己查一下文档,给你一个更详细的回答。不过在此之前:在旋转图像时,我建议用图像的中心来放置,而不是用左上角。两种方法都可以,但我觉得用中心更简单。

撰写回答