bzz*_*zzr 1 python pygame rect breakout
我正在研究一个突破性的克隆,我一直试图弄清楚如何获得两个碰撞反射的交叉矩形因此我可以测量球在x和y轴上进入块的深度,并决定哪个部分是速度我会逆转.
我想我可以像这样计算每个案例的深度:

但是,如果我有交叉矩形而不是我不必担心如果球从左/右或顶部/底部撞击块(因为我将只分别反转x和y轴),因此节省了我很多打字.
我看过Pygame的文档,但似乎它没有这个功能.我该如何解决这个问题?
假设你有矩形r1,并r2与.left, .right, .top, and .bottom边缘,然后
left = max(r1.left, r2.left);
right = min(r1.right, r2.right);
top = max(r1.top, r2.top);
bottom = min(r1.bottom, r2.bottom);
Run Code Online (Sandbox Code Playgroud)
(通常的惯例是坐标从上到下,从左到右增加).最后,检查left<right和top<bottom,并计算面积:
Area = (right - left) * (top - bottom);
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用该clip()功能.来自您在问题中链接的文档:
clip(Rect) - > Rect返回一个新的矩形,该矩形被裁剪为完全位于参数Rect内.如果两个矩形不重叠,则返回一个0大小的Rect.
| 归档时间: |
|
| 查看次数: |
3352 次 |
| 最近记录: |