【问题标题】:finding the angle between to points with pygame用pygame找到点之间的角度
【发布时间】:2013-10-20 05:02:48
【问题描述】:

我正在使用 pygame 制作游戏,我希望玩家面对十字准线,这是我拥有的代码,我让它打印出空闲时的角度,我注意到所有错误的角度和玩家无论如何都没有旋转。我已经看到了一些其他类似的问题并且我已经关注了它们,但是我仍然得到错误的角度并且图像无论如何都不会旋转

这是我的角度和旋转图像代码:

mouse_x, mouse_y = pygame.mouse.get_pos()
mouse_x -= crosshair.get_width() / 2
mouse_y -= crosshair.get_height() / 2
player_atan = math.atan2(player_x-player_y, mouse_x-mouse_y)
player_angle = degrees(player_atan)
pygame.transform.rotate(screen, player_angle)

【问题讨论】:

    标签: python pygame angle


    【解决方案1】:

    你必须从不同的点中减去相同的分量。

    player_atan = math.atan2(mouse_y - player_y, mouse_x - player_x)
    

    【讨论】:

    • 谢谢,解决了角度不正确的问题,但图像仍然没有旋转。
    • 而且数字的上半部分是负数。
    • 这个问题还没有回答。有人愿意回答吗?
    • 对不起,如果我有点挑剔,但这个问题是关于角度的,这确实已经得到了回答。我会说你现在还有另一个问题,图像没有被旋转。
    • 我在我的问题中提到了这一点
    【解决方案2】:

    您应该查看 python 文档:它有一些有价值的信息。

    你的精灵不旋转的原因是因为旋转返回一个新的旋转表面。

    文档链接:docs

    【讨论】:

    • 这就是我一直在使用的网站,我使用旋转图像功能,但它并不能正常工作,你说该功能返回一个新的旋转表面,这是什么意思?
    • 这意味着该函数不起作用,它返回一个旋转图像的副本。因此,要旋转图像,您必须将函数的结果分配回变量。 image=rotate(image)
    • 好的,非常感谢您的帮助,还有一件事,当我运行脚本时,播放器图像不会显示,然后大约 5 秒后显示宽度或高度过大。
    • 您还没有阅读文档。图像被填充以保持旋转后较大的图像。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多