Alexdr5398
Alexdr5398

Reputation: 51

How do I make a rectangular sprite stop when it collides with another rectangular sprite using pygame?

I'm trying to create some obstacles for the player in my program. I can't figure out how to make the sprite stop when it comes in contact with it from all sides.

I tried to use pygame.sprite.collide_rect and pygame.sprite.spritecollide, but couldn't figure out how to do it.

If you could just try to explain the concept, I'd rather try to figure the rest out myself. Thanks in advance!

Upvotes: 1

Views: 70

Answers (1)

Joran Beasley
Joran Beasley

Reputation: 113988

def move_rect():
    new_pos = player_rect.pos
    new_pos = new_pos[0]+dx,new_pos[1]+dy
    new_rect = rect(new_pos,player_rect.size)
    for enemy in enemy_rects:
        if new_rect.colliderect(enemy):
           dx,dy=dx*-1,dy*-1 #reverse direction to "bounce"
           #alternatively you could just return here probably

    player_rect.move(dx,dy) #do the move, no collisions

something like that at least ... (I doubt it will work, its more to give you the concept)

Upvotes: 1

Related Questions