0
我想讓按鈕上的圖像旋轉點擊。當我點擊屏幕時圖像旋轉,但它每5度繼續自我複製,並且在運行一段時間後也會崩潰。我確定有更好的方法來做到這一點,但我只是不知道它是什麼。這裏是我的代碼我想讓一個圖像旋轉在一個按鈕上點擊
while True:
for event in pygame.event.get():
'''Quit Button'''
if event.type == pygame.QUIT:
pygame.quit()
elif event.type == pygame.MOUSEBUTTONUP and event.button == 1:
screen.blit(target, targetpos)
elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:
# # if mouse is pressed get position of cursor ##
screen.blit(target1, target1pos)
degree = 0
while True:
image_surf = pygame.image.load('image.png')
image_surf = pygame.transform.scale(image_surf, (810, 810))
image_surfpos = image_surf.get_rect()
blittedRect = screen.blit(image_surf, image_surfpos)
'Get center of surf for later'
oldCenter = blittedRect.center
'rotate surf by amount of degrees'
rotatedSurf = pygame.transform.rotate(image_surf, degree)
'Get the rect of the rotated surf and set its center to the old center'
rotRect = rotatedSurf.get_rect()
rotRect.center = oldCenter
'Change the degree of rotation'
screen.blit(rotatedSurf, rotRect)
degree += 5
if degree > 360:
degree = 0
'Show the screen Surface'
pygame.display.flip()
'Wait 60 ms for loop to restart'
pygame.time.wait(60)
你如何改變這一點 – Leyton
對不起,遲到的迴應。你在主遊戲循環中的while循環不會退出,所以事件處理不會被處理,從而導致崩潰。由於您沒有在任何一個循環中清除屏幕,所以圖像會在過去的圖像上傳送到屏幕上。我沒有完整的代碼,所以我不能給你一個完整的答案,因爲像target這樣的東西沒有被指定,但是刪除while循環可能會有所幫助。除非有充分的理由在運行時加載它,否則將任何圖像加載到主遊戲循環之外。 – Jarann