所以我加载了一个图像,然后对其进行旋转。然而,当我运行该程序时,它就滑出了屏幕。为什么?
import pygame, sys
def rotate45(gameObject):
newObject = pygame.transform.rotate(gameObject, 45)
return newObject
def main():
pygame.init()
screen = pygame.display.set_mode((800,600))
Tardis = pygame.image.load("Tardis.bmp")
Tardis.set_colorkey((255, 0, 0))
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
screen.fill( (0,0,0) )
Tardis = rotate45(Tardis)
screen.blit(Tardis, (400,300))
pygame.display.update()
有人可以帮忙吗?如果您需要知道的话,我的图像是 75 x 134。
我是编程新手,但我不知道为什么会发生这种情况。
最佳答案
就像 @cmd 所说,旋转
变换会改变对象的尺寸。保存原始对象并继续将更改后的变换应用到原始对象。下面是一个例子:
import pygame
import sys
import time
def rotate45(gameObject, rotations={}):
r = rotations.get(gameObject,0) + 45
rotations[gameObject] = r
return pygame.transform.rotate(gameObject, r)
def main():
pygame.init()
screen = pygame.display.set_mode((800,600))
Tardis = pygame.image.load("Tardis.bmp")
Tardis.set_colorkey((255, 0, 0))
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
screen.fill( (0,0,0) )
rotatedTardis = rotate45(Tardis)
screen.blit(rotatedTardis, (400,300))
pygame.display.update()
time.sleep(1)
main()
关于python - 当我使用 pygame.transform.rotate() 时,它会移动我的图像,这样,如果连续使用,它将离开屏幕。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25434990/