我在Python中使用Pygame开发了一个基本游戏,但是我一辈子都无法想出一个公式,通过改变形状的基坐标来旋转它。以下是我目前所掌握的情况:pygame.init()
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Singleplayer Mode")
done = False
clock = pygame.time.Clock()
p11 = 100
p12 = 100
p21 = 100
p22 = 150
p31 = 150
p32 = 125
upspeed = 0
rightspeed = 0
topspeed = 25
pause = "false"
while not done:
screen.fill(WHITE)
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
elif event.type == pygame.KEYDOWN:
if event.key == K_w:
upspeed -= 1
if event.key == K_s:
upspeed += 1
if event.key == K_d:
rightspeed += 1
if event.key == K_a:
rightspeed -= 1
if event.key == K_SPACE:
pass
if pause == "true":
if event.key == K_p:
pause = "false"
print("Game is unpaused.")
if event.key == K_q:
done = True
if event.key == K_p:
pause = "true"
print("Game is paused.")
if rightspeed > 0:
rightspeed -= 0.01
if rightspeed < 0:
rightspeed += 0.01
if upspeed > 0:
upspeed -= 0.01
if upspeed < 0:
upspeed += 0.01
if pause != "true":
p11 += rightspeed
p21 += rightspeed
p31 += rightspeed
p12 += upspeed
p22 += upspeed
p32 += upspeed
if p12 < 0:
upspeed = 0
if p11 < 0:
rightspeed = 0
if p31 > w:
rightspeed = 0
if p22 > h:
upspeed = 0
pygame.draw.polygon(screen, BLACK, [[p11, p12], [p21, p22], [p31, p32]], 0)
pygame.display.flip()
clock.tick(60)
pygame.quit()
基本上,我想做的是把我创建的三角形,旋转它,而不是让它在我按下d和a键时左右移动。有没有什么公式可以用来改变p11、p12、p21、p22、p31和p32的值来实现这一点?在