问题描述
我正在尝试制作类似Cookie Clicker的游戏,并且试图使中心cookie旋转,但是什么也没发生:(。在它刚离开屏幕旋转之前,但是后来我删除了该代码,因为我给了起来,但是现在我已经做了其他事情,现在还需要轮换(我刚刚从2周前开始,所以不要判断)这是我的代码:
import pygame,sys,time,random
pygame.init()
height = 650
width = 800
cookies = 0
cps = 0
font = pygame.font.SysFont('Arial',25)
clock = pygame.time.Clock()
cookie_surface = pygame.image.load('/Users/cameronbitter/Python/Game/cookie.png')
cookie_surface = pygame.transform.scale(cookie_surface,(275,275))
cookie_rect = cookie_surface.get_rect(center = (width/2,height/2))
screen = pygame.display.set_mode((width,height))
auto_clicker = pygame.image.load('/Users/cameronbitter/Python/Game/mouse_cursor.png')
auto_clicker = pygame.transform.scale(auto_clicker,(480,360))
auto_clicker_rect = auto_clicker.get_rect(topleft = (450,-100))
rotation = 0
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.QUIT
sys.exit()
if event.type == pygame.KEYDOWN:
cookies += 1
time.sleep(0)
screen.fill((0,0))
cookies_text_surface_p1 = font.render("Cookies :",True,(255,255,255))
cookies_text_surface_p2 = font.render(f" {cookies}",255))
pygame.transform.rotate(cookie_surface,(rotation))
if rotation >= 360:
rotation = 0
rotation += 1
print(rotation)
screen.blit(cookies_text_surface_p1,(10,10))
screen.blit(cookies_text_surface_p2,11))
screen.blit(cookie_surface,(cookie_rect))
screen.blit(auto_clicker,(auto_clicker_rect))
pygame.display.flip()
clock.tick(60)
解决方法
pygame.transform.rotate
返回一个新的旋转后的pygame.Surface
对象。您必须blit
新表面:
while True:
# [...]
rotated_cookie_surface = pygame.transform.rotate(cookie_surface,rotation)
rotated_cookie_rect = rotated_cookie_surface.get_rect(center = cookie_rect.center)
# [...]
screen.blit(rotated_cookie_surface,rotated_cookie_rect)
# [...]