I have coded an animation (in python) for a beach ball to bounce around a screen. I now wish to add a second ball to the window, and when the two collide for them to bounce off each other.
So far, my attempts at this have been unsuccessful. Any ideas how to do this? The code I have so far is below.
import pygame import sys if __name__ =='__main__': ball_image = 'Beachball.jpg' bounce_sound = 'Thump.wav' width = 800 height = 600 background_colour = 0,0,0 caption= 'Bouncing Ball animation' velocity = [1,1] pygame.init () frame = pygame.display.set_mode ((width, height)) pygame.display.set_caption (caption) ball= pygame.image.load (ball_image). convert() ball_boundary = ball.get_rect (center=(300,300)) sound = pygame.mixer.Sound (bounce_sound) while True: for event in pygame.event.get(): print event if event.type == pygame.QUIT: sys.exit(0) if ball_boundary.left < 0 or ball_boundary.right > width: sound.play() velocity[0] = -1 * velocity[0] if ball_boundary.top < 0 or ball_boundary.bottom > height: sound.play() velocity[1] = -1 * velocity[1] ball_boundary = ball_boundary.move (velocity) frame.fill (background_colour) frame.blit (ball, ball_boundary) pygame.display.flip()
Here’s a very basic restructure of your code. It could still be tidied up a lot, but it should show you how you can use instances of the class.