为什么我的 Pygame 碰撞总是碰撞?
Why is my Pygame Collision always colliding?
我一直在尝试使用 Pygame 碰撞,但我尝试过的都没有用。现在我得到了这个:
player_collison_box = player.get_rect()
hole_collision_box = hole.get_rect()
if player_collison_box.colliderect(hole_collision_box):
print('collision')
它不会抛出任何错误或任何东西,但它总是打印 'collide'。我不知道是碰撞框太大还是都在同一个地方还是什么,但你能帮我吗?
pygame.Surface.get_rect.get_rect()
returns 具有 Surface 对象大小的矩形,但它 returns 始终从 (0 , 0) 因为 Surface 对象没有位置。
Surface 放置在与显示器 blit
的位置。
您必须通过关键字参数设置矩形的位置。下面的(player_x,player_y)是玩家坐标和(hole_x, hole_y) ar eth坐标:
player_collison_box = player.get_rect(topleft = (player_x, player_y))
hole_collision_box = hole.get_rect(topleft = (hole_x, hole_y))
if player_collison_box.colliderect(hole_collision_box):
print('collision')
我一直在尝试使用 Pygame 碰撞,但我尝试过的都没有用。现在我得到了这个:
player_collison_box = player.get_rect()
hole_collision_box = hole.get_rect()
if player_collison_box.colliderect(hole_collision_box):
print('collision')
它不会抛出任何错误或任何东西,但它总是打印 'collide'。我不知道是碰撞框太大还是都在同一个地方还是什么,但你能帮我吗?
pygame.Surface.get_rect.get_rect()
returns 具有 Surface 对象大小的矩形,但它 returns 始终从 (0 , 0) 因为 Surface 对象没有位置。
Surface 放置在与显示器 blit
的位置。
您必须通过关键字参数设置矩形的位置。下面的(player_x,player_y)是玩家坐标和(hole_x, hole_y) ar eth坐标:
player_collison_box = player.get_rect(topleft = (player_x, player_y))
hole_collision_box = hole.get_rect(topleft = (hole_x, hole_y))
if player_collison_box.colliderect(hole_collision_box):
print('collision')