我有这个代码:
def getAngle(x1, y1, x2, y2):
rise = y1 - y2
run = x1 - x2
angle = math.atan2(run, rise) # get the angle in radians
angle = angle * (180 / math.pi) # convert to degrees
angle = (angle) % 360 # adjust for a right-facing sprite
return angle
...根据屏幕上的鼠标位置返回一个角度。
我想设置一个时间间隔,我的对象的旋转将在特定点停止。例如:如果角度大于 90°,我希望我的对象停止获得更高的角度。在这种情况下,90° 应该像旋转停止的某个边界。
我认为我需要 2 个条件,因为角度不应该高于左右 90°。
有人知道如何解决这个问题吗?
这部分代码在游戏循环中(它使用定义的 getAngle):
mousex, mousey = pygame.mouse.get_pos()
for cannonx, cannony in (((width/2)-45, height-25), ((width/2)-45, height-25)):
degrees = getAngle(cannonx, cannony, mousex, mousey)
rotcannonImg = pygame.transform.rotate(cannonImg, degrees)
rotcannonRect = rotcannonImg.get_rect()
rotcannonRect.center = (cannonx, cannony)
windowSurface.blit(rotcannonImg, rotcannonRect)