python旋转坐标系_如何通过改变对象的点坐标来旋转它(Python,Pygame)

我在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的值来实现这一点?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值