2014-04-17 108 views
0

我仍然有旋轉問題(請參閱我的上一個問題),以解決它們我把問題從我的遊戲的上下文中,看看我是否可以讓它旋轉沒有混淆我想要做的一切。 我現在的問題是圖像旋轉,但它也同時飛離屏幕。我沒有任何移動命令,它只能旋轉到位。 爲什麼會發生這種情況?Pygame圖像隨着旋轉移動

這裏是我的代碼:

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的原因是,我讀的是能夠從圖像發生時自動調整大小的問題,當它旋轉。

+0

我沒有'Pygame.transform.rotozoom'的個人經驗,但我會懷疑它可能圍繞原點旋轉,而不是表面的原點。如果是這種情況,則表面將圍繞「(0,0)」在「世界」中的任何位置旋轉。嘗試暫時將表面對象移動到世界原點,執行rotozoom操作,然後將其移回。 – Haz

回答

0

你打算在這裏使用這兩條線來實現什麼?

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

爲什麼在這裏調用Rect.move函數?

您的問題可能是,blit是在左上角完成的。我不知道圖像的尺寸,但可能是因爲在旋轉過程中左上角發生了位移,它會「旋轉」出窗外?

這裏有點晚了,否則我會自己查看文檔,並給你一個更詳細的答案。但在那之前:在旋轉圖像時,我會沿着圖像的中心放置它,而不是放在左上角。可以做到這一點,我發現使用中心更容易。

+0

謝謝你的幫助 – user3532835