Egg and basket game in python
Question: I am a beginner in python programming. I got a course project to make a game
using python. I tried making the egg and basket game using pygame. The game is
working to some extent. I am able to make the egg fall and move the basket on
key press, but I am not able to make egg fall continuously i.e. just one egg
falls and after that it stops falling. I am expecting eggs to fall one after
other like in the actual game.

And I have no idea how to know when the egg falls in the basket and how to
increase the score when it falls in the basket.

Can you please help me out??

[Screenshot of my game](http://i.stack.imgur.com/XyPYJ.png)

    
    
    #The egg and basket game
    
    import pygame
    from pygame.locals import *
    import time
    import random
    clock = pygame.time.Clock()
    x=260
    y=500
    #Screen initialize
    pygame.init()
    pygame.font.init()
    screen=pygame.display.set_mode((600,600))
    pygame.display.set_caption("egg")
    
    #Background
    cloud=pygame.image.load("clouds.jpg")
    cloud=pygame.transform.scale(cloud,(600,600))
    screen.blit(cloud,(0,0))
    
    #Basket
    basket=pygame.image.load("basket.jpg")
    basket=pygame.transform.scale(basket,(80,80))
    screen.blit(basket,(x,y))
    pygame.display.update()
    
    #egg
    egg=pygame.image.load("egg.jpg")
    egg=pygame.transform.scale(egg,(20,20))
    
    #screen.blit(egg,(290,20))
    pygame.display.update()
    
    #Movement of basket
    ychange=0
    xchange=0
    exiting=False
    for yegg in range(20,550):
    
    #for i in range(0,100):
    xegg=random.randrange(50,550)
        while not exiting:    
       #xegg=random.randrange(50,550)
        #for yegg in range(20,550):
            if yegg<550:
                ychange+=1
                pygame.display.update()
                clock.tick(60)
                screen.blit(egg,(xegg,ychange))
    
            else:
                yegg=20
                yegg=yegg+ychange    
                pygame.display.update()
                clock.tick(60)
                screen.blit(egg,(xegg,yegg))
            #yegg=20                    
            pygame.display.update()
            clock.tick(60)
        #yegg=20
    
            for event in pygame.event.get():
                print(event)
                if(event.type==pygame.QUIT):
                    exiting=True
                    pygame.quit()
                    quit()
                if(event.type==pygame.KEYDOWN):
                    if(event.key==pygame.K_LEFT):
                        xchange=-5
                    if(event.key==pygame.K_RIGHT):
                        xchange=5
                screen.blit(basket,(x,y))
                if(event.type==pygame.KEYUP):
                    if(event.key==pygame.K_LEFT or event.key==pygame.K_RIGHT):
                        xchange=0
    
                x=x+xchange
                print(x)
                screen.blit(cloud,(0,0))
    
                screen.blit(basket,(x,y))
    
                pygame.display.update()
                clock.tick(60)
    
        i=i+1
        ychange=0
        #random position of eggs
    
        #MOVEMENT OF egg
    


Answer: First of all use .png images to make the white square around the images to
disappear. Use `pygame.image.load("myimage.png").convert_alpha()`

    
    
    xegg=random.randrange(50,550)
    

the above line should be inside the while loop so that you get random x values
each iteration. I've done some changes to you code and now the eggs fall from
random positions. To catch them you must check for collisions between the
basket and the eggs.

    
    
    #The egg and basket game
    
    import pygame
    from pygame.locals import *
    import time
    import random
    clock = pygame.time.Clock()
    x=260
    y=500
    #Screen initialize
    pygame.init()
    pygame.font.init()
    screen=pygame.display.set_mode((600,600))
    pygame.display.set_caption("egg")
    
    #Background
    cloud=pygame.image.load("clouds.png").convert_alpha()
    cloud=pygame.transform.scale(cloud,(600,600))
    screen.blit(cloud,(0,0))
    
    #Basket
    basket=pygame.image.load("basket.png").convert_alpha()
    basket=pygame.transform.scale(basket,(80,80))
    screen.blit(basket,(x,y))
    pygame.display.update()
    
    #egg
    egg=pygame.image.load("eggs.png").convert_alpha()
    egg=pygame.transform.scale(egg,(20,20))
    
    #screen.blit(egg,(290,20))
    pygame.display.update()
    
    #Movement of basket
    ychange=0
    xchange=0
    exiting=False
    
    
    xegg = random.randrange(50,550)
    yegg = 20
    while not exiting:
    #xegg=random.randrange(50,550)
    #for yegg in range(20,550):
        print yegg
        if yegg<550:
            yegg += 5
            pygame.display.update()
            clock.tick(60)
            screen.blit(egg,(xegg,yegg))
    
        else:
            yegg=20
            xegg = random.randrange(50,550)
            yegg=yegg+ychange
            pygame.display.update()
            clock.tick(60)
            screen.blit(egg,(xegg,yegg))
        #yegg=20
        pygame.display.update()
        clock.tick(60)
        #yegg=20
    
        for event in pygame.event.get():
            print(event)
            if(event.type==pygame.QUIT):
                exiting=True
                pygame.quit()
                quit()
            if(event.type==pygame.KEYDOWN):
                if(event.key==pygame.K_LEFT):
                    xchange=-5
                if(event.key==pygame.K_RIGHT):
                    xchange=5
            screen.blit(basket,(x,y))
            if(event.type==pygame.KEYUP):
                if(event.key==pygame.K_LEFT or event.key==pygame.K_RIGHT):
                    xchange=0
    
            x=x+xchange
            print(x)
            screen.blit(cloud,(0,0))
    
            screen.blit(basket,(x,y))
    
            pygame.display.update()
            clock.tick(60)
    
    i=i+1
    ychange=0
        #random position of eggs
    
        #MOVEMENT OF egg
    

Go to [pygame collisions](http://www.pygame.org/docs/ref/sprite.html) and
learn collisons. Go [here](http://www.petercollingridge.co.uk/) for some very
good examples. Also [here](http://thepythongamebook.com/en:start) for an
excellent Pygame guide.

