1
我試圖旋轉圖像,同時保持其中心位置。我試過按照另一個問題的指示,但它似乎並沒有與我面對的完全相同的問題。如何在保持其位置的同時在pygame中旋轉圖像?
當我旋轉圖像時,它從其中心旋轉,但中心位置似乎改變,它看起來好像我的圖像在旋轉時上下反彈。
這裏是代碼:
import pygame
import sys
import math
pygame.init()
screen = pygame.display.set_mode((800,600))
img_load = pygame.image.load("img/test.png")
img = pygame.transform.scale(img_load,(40,40))
bg = pygame.image.load("img/bgblack.png")
img_x = 300
img_y = 300
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
m_x,m_y = pygame.mouse.get_pos()
radians = math.atan2(m_y - img_y, m_x - img_x)
degrees = math.degrees(radians)
img_center = img.get_rect().center
rot_img = pygame.transform.rotate(img,-degrees)
rot_img.get_rect().center = img_center
screen.blit(bg,(0,0))
screen.blit(rot_img,(img_x,img_y))
pygame.display.update()
你的幫助是極大的讚賞:)
我還沒有使用過pygame,但是通常你在遊戲引擎中做的是這樣的,首先將你的精靈轉換到它的中心軸所在的位置,然後應用旋轉,然後回到你想要的位置在屏幕上。例如,如果你想圍繞精靈的中心旋轉,首先你要將它移動一半寬度和高度,這樣它的中心位於世界(0,0)。然後應用旋轉,並翻譯成位置。 – Michael