강의 : https://youtu.be/Dkx8Pl6QKW0
코드편집기 : https://code.visualstudio.com/

C:\Users\Administrator>pip install pygame

C:\Users\Administrator>pip list
Package           Version
----------------- -------
asgiref           3.2.3
astroid           2.4.2
colorama          0.4.3
isort             5.4.2
lazy-object-proxy 1.4.3
mccabe            0.6.1
pip               20.2.2
pygame            1.9.6
pylint            2.6.0
pytz              2019.3
setuptools        45.0.0
six               1.15.0
sqlparse          0.3.0
toml              0.10.1
typed-ast         1.4.1
virtualenv        16.7.9
wheel             0.33.6
wrapt             1.12.1

내려오는 노란색 똥 피하기 게임
ddong.py 

import pygame, random

##############################################################
# 기본 초기화
pygame.init()

# 화면크기 설정
screen_width = 480
screen_height = 640
screen = pygame.display.set_mode((screen_width, screen_height))

# 게임이름
pygame.display.set_caption("똥 피하기")

# FPS
clock = pygame.time.Clock()
################################################################

# 1. 사용자 게임 초기화 (배경화면, 이미지, 좌표, 속도, 폰트 등)

# 배경이미지
background = pygame.image.load("C:/Work/Python project/game/background.png")

# 캐릭터(스프라이트) 불러오기
character = pygame.image.load("C:/Work/Python project/game/character.png")
character_size = character.get_rect().size                      # 이미지 크기 조회
character_width = character_size[0]                             # 캐릭터의 가로 크기
character_height = character_size[1]                            # 캐릭터의 세로 크기
character_x_pos = (screen_width / 2) - (character_width / 2)    # 화면의 중앙 - 캐릭터 넓이의 절반
character_y_pos = screen_height - character_height              # 화면가장 밑 - 캐릭터 높이
character_speed = 0.5                                           # 캐릭터 이동 속도

# 이동할 좌표
to_x = 0


# 적 enemy 캐릭터
enemy = pygame.image.load("C:/Work/Python project/game/enemy.png")
enemy_size = enemy.get_rect().size                              # 이미지 크기 조회 
enemy_width = enemy_size[0]                                     # 캐릭터의 가로 크기
enemy_height = enemy_size[1]                                    # 캐릭터의 세로 크기
enemy_x_pos = random.randint(0, screen_width - enemy_width)     # 화면의 0 ~ 화면폭 - enemy witdh
enemy_y_pos = 0                                                 # 화면가장 위
enemy_speed = 3                                                 # 캐릭터 이동 속도

# 폰트정의
game_font = pygame.font.Font(None, 40) # 폰트객체생성 (폰트, 크기)

# 총 시간
total_time = 100

# 시작시간
start_ticks = pygame.time.get_ticks() # 시작 tick 을 받아옴

# 이벤트 루프
running = True
while running:
    # 게임화면의 초당 프레임 수 설정
    dt = clock.tick(60)

    # print("fps : {}".format(clock.get_fps()))

    # 2. 이벤트 처리 (키보드, 마우스 등)
    for event in pygame.event.get():   # 이벤트 발생여부확인
        if event.type == pygame.QUIT:  # 창닫기 버튼 클릭
            running = False

        # 방향키 눌렀을때 이벤트 확인
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                to_x -= character_speed

            elif event.key == pygame.K_RIGHT:
                to_x += character_speed

        # 방향키를 뗐을때 이벤트 확인
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                to_x = 0

    # 3. 게임 캐릭터 위치 정의
    character_x_pos += to_x * dt

    # 캐릭터가 화면밖으로 이동하지 않도록 처리
    if character_x_pos < 0:
        character_x_pos = 0
    elif character_x_pos > screen_width - character_width:
        character_x_pos = screen_width - character_width

    # 똥이 내려오게
    enemy_y_pos += enemy_speed
    
    # 똥이 다시 내려오게
    if enemy_y_pos >= screen_height:
        enemy_x_pos = random.randint(0, screen_width - enemy_width)
        enemy_y_pos = 0
    
    # print("{} : {}".format(enemy_x_pos, enemy_y_pos))

    # 4. 충돌처리
    # 충돌처리를 위한 rect 정보 갱신
    character_rect = character.get_rect()
    character_rect.left = character_x_pos
    character_rect.top = character_y_pos

    enemy_rect = enemy.get_rect()
    enemy_rect.left = enemy_x_pos
    enemy_rect.top = enemy_y_pos

    # 충돌체크
    if character_rect.colliderect(enemy_rect):
        print("충돌!!")
        running = False

    # 5. 화면에 그리기
    # screen.fill((0, 0, 255))          # 색상으로 그리기
    screen.blit(background, (0, 0))     # 배경 그리기

    # 캐릭터 그리기
    screen.blit(character, (character_x_pos, character_y_pos))

    # enemy 캐릭터 그리기
    screen.blit(enemy, (enemy_x_pos, enemy_y_pos)) 

    # 타이머 추가
    # 경과시간계산
    # 경과시간을 1000으로 나누어 초(s)단위로 표시
    elapsed_time = (pygame.time.get_ticks() - start_ticks) / 1000

    # 출력할 글자, True, 색상
    timer = game_font.render(str(int(total_time - elapsed_time)), True, (255, 255, 255))

    # 글자 그리기
    screen.blit(timer, (10, 10))

    # 만약시간이 0 이하면 게임종료
    if total_time <= elapsed_time:
        print("타임아웃")
        running = False

    # 게임화면 rendering
    pygame.display.update()

# 잠시 대기 (2초)
pygame.time.delay(2000)

# pygame 종료
pygame.quit()