我想使用pygame创建一个“实体”物体。目标是当玩家与物体接触时,将其推开。目前我正在使用以下代码(但无法正常工作):
keys_pressed = pygame.key.get_pressed()
if 1 in keys_pressed:
if keys_pressed[K_w]:
self.player_l[1] += -2
if self.player_r.colliderect(self.tower_r): self.player_l[1] -= -2
if keys_pressed[K_a]:
self.player_l[0] += -2
if self.player_r.colliderect(self.tower_r): self.player_l[0] -= -2
if keys_pressed[K_s]:
self.player_l[1] += 2
if self.player_r.colliderect(self.tower_r): self.player_l[1] -= 2
if keys_pressed[K_d]:
self.player_l[0] += 2
if self.player_r.colliderect(self.tower_r): self.player_l[0] -= 2
这个问题在于,即使玩家回到了与碰撞发生前相同的位置,玩家矩形仍然会被"卡住"在塔状物的内部,导致碰撞不断触发。一旦玩家接触了塔状物,就无法在任何方向上移动。