我正在使用pygame制作一个简单的游戏。我遇到了圆圈碰撞的问题。我收到以下错误:
“AtributeError:'pygame.Rect'对象没有attrinute'rect'”
以下是我遇到问题的特定代码:
if pygame.sprite.collide_circle(hero_circle, enemy_circle):
gameover()
提前致谢!
答案 0 :(得分:1)
pygame.draw.rect()
draw a rectangle shape
rect(Surface, color, Rect, width=0) -> Rect
在Surface上绘制一个矩形形状。给定的Rect是矩形的区域。 width参数是绘制外边缘的粗细。如果width为零,则矩形将被填充。
请记住,Surface.fill()方法也适用于绘制填充矩形。事实上,Surface.fill()可以在某些平台上通过软件和硬件显示模式进行硬件加速。
答案 1 :(得分:1)
使用 pygame.mask
为对象创建碰撞网格,并使用网格进行碰撞检测。
更详细:
(从技术上讲,这只是对矩形上的圆形区域进行碰撞检测,但谁在乎呢!)
答案 2 :(得分:0)
就像gmk说的那样但是如果你使用 circle 而不是矩形,你应该使用这个pygame函数:
pygame.draw.circle(surface, color, center_point, radius, width)
这会在您的表面上绘制一个圆圈(可以在surface
区域内)。显然,颜色需要一个数字列表(RGB任何人?)。您的center_point
决定了您圈子的位置,因为它将是您圈子中心的位置。半径将需要一个数字来设置圆的半径(使用像25这样的数字将半径设置为25像素/直径为50像素)。 width
部分是可选的,因为它设置了圆的周长(0表示根本没有)。如果你不使用圈子,你应该改变你的头衔......但无论如何,我希望这对你有帮助!
答案 3 :(得分:0)
我发现检查圆碰撞检测的最佳方法是计算两个圆的中心点之间的距离。如果距离小于两个圆的半径之和,那么你就发生了碰撞。