我是pygame的新手,我正在尝试制作一款平板游戏。我还计划使用套接字在其中添加多人游戏功能。玩家就像可以跳跃的坦克,你可以移动鼠标将坦克的枪对准光标的方向,然后在你点击时射击
我所做的是画了一条矩形,这是坦克的主体,以及一条从矩形中心到光标位置的线,这应该是坦克的枪。现在,绘制的线不是固定的,如果我将鼠标移离水箱,线的长度将跟随鼠标光标。这就是它的样子:
我不知道如何使它成为一个固定长度,我对这个问题做了一些数学说明,可能会有所帮助: 其中A是坦克的中心,B是鼠标的位置,R是坦克炮的长度,C是坦克炮的终点。目标是在给定A、B和r的情况下得到C,同时还要考虑到A和B的距离可以小于半径(因为鼠标可以去任何它想去的地方)。虽然我不确定插图是否正确,因为有可能鼠标会进入圆圈,老实说,除此之外我还很困惑
还有最后一件事,是否有实现碰撞的最佳方法?因为我的解决方案是只保存每个平台的坐标,然后按如下方式执行if语句:
如果玩游戏>;平台1Y:停止坠落
如果playerX>;平台2X:停止向左移动
如果游戏性<;平台3Y:停止向上移动
如果playerX<;平台4Y:停止向右移动
必须计算从A到B的方向向量。计算唯一向量(长度为1的向量)并将其缩放到半径r。将向量添加到点A。结果是点C} 和操作
在pygame中,这种计算非常简单。使用^{
scale_to_length()
获得向量(V)形式A到C。最后将V添加到C:您已将对象的中心传递给参数(} 计算矩形的中心。例如:
ax, ay
)。可以使用^{相关问题 更多 >
编程相关推荐