gpt4 book ai didi

python - 当我使用 pygame.transform.rotate() 时,它会移动我的图像,这样,如果连续使用,它就会离开屏幕。为什么?

转载 作者:行者123 更新时间:2023-11-28 22:48:08 27 4
gpt4 key购买 nike

所以我加载了一张图片,然后对其进行了旋转。但是,当我运行该程序时,它只是从屏幕上滑了下来。为什么?

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 所说,rotate 转换改变了对象的尺寸。保存原始对象并继续将更改后的变换应用于原始对象。下面是一个例子:

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com