카테고리 없음

기초 파이게임 키보드 조작 코드 해설

abccoco 2022. 4. 27. 22:25

오늘은 파이 게임을 만들어 봤다

파이게임 기초 셋팅 코드와

키보드로 조정하는 법을 코드와 해설 주석으로 남겼다

import  pygame
# 이건 파이게임 시작할때 필수입니다
pygame.init()
# 이 코드는 파이선 게임 실행할때 display 창의 크기를 설정하는 것입니다
background = pygame.display.set_mode((480, 360))
pygame.display.set_caption('pygame의 제목')

#
# x,y 좌표를 만들어 준것인데 background의 size를 get하면 튜플 형테로 값을 받게 된다 그리고 그 튜플형테의 0번째는 x_pos에 넣고 1번째는 y_pos에 넣게 된다
# 튜플 형태에서 0번째는 파이게임 백그라운드에서 x축 1번째는 y축과 같기 때문이다 나누기 2를 한 이유는 가운데 x,y축의 가운데에 오게 하기 위해서다
x_pos = background.get_size()[0]//2 #240
y_pos = background.get_size()[1]//2 #180

fps = pygame.time.Clock()

to_x = 0
to_y = 0


#play가 ture일때 라는뜻
play = True
# while문을 사용하지 않으면 pygame가 종료 된다 while문을 사용해주므로서 게임이 지속된다(게임 창을 지속적으로 작동하기 위해 필요함)
while play:
    deltaTime = fps.tick(60)
    # pygame의 event가 있다면 get 즉 가져와 event에 하나하나 넣는다(반복문)
    for event in pygame.event.get():
        # 만약 현재 발생한 event의 type이 pygame을 그만하라는 QUIT(종료명령)명령이 있다면
        if event.type == pygame.QUIT:
            # 현제 게임을 돌아가게 하는 조건인 while문의 조건! 바로 play = Ture를 False로 바꾸어라 이러면 while문에서 빠져 나온다
            # 설명을 덧붙이자면 while문을 사용하면 while 구간에서 계속 코드가 반복되니 while 구간 밖의 코드가 읽혀지지 않는것 같다
            play = False
        # 만일 event type이 키보드를 와 같다면 다시말해 키보드를 누르면 같겠죠?
        if event.type == pygame.KEYDOWN:
            # event key가 화살표 위 키를 누른것과 같다면
            if event.key == pygame.K_UP:
                # to_y에 -5를 넣는다 누른값은 아래쪽에 적은 변수 x_pos += to_x 와 y_pos += to_y에 누적이 됩니다
                to_y = -5
            elif event.key == pygame.K_DOWN:
                to_y = 5
            elif event.key == pygame.K_RIGHT:
                to_x = 5
            elif event.key == pygame.K_LEFT:
                to_x = -5
        # 만약 event type이 키보드를 땐것과 같다면
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_UP:
                # to_y의 값이 0으로 바뀌게 된다 이러면 x,y축의 움직임이 멈추게 된다
                to_y = 0
            elif event.key == pygame.K_DOWN:
                to_y = 0
            elif event.key == pygame.K_RIGHT:
                to_x = 0
            elif event.key == pygame.K_LEFT:
                to_x = 0

    # x, y축의 숫자 누적한다, 키보드를 꾹누르면 계속 누적 된다
    x_pos += to_x
    y_pos += to_y
    # 백그라운드 배경 fill(채우겠다) 이 색으로 라는 뜻
    background.fill((255, 255, 255))
    # pygame.draw.circle - 이 코드는 공을 그려주는 코드다
    # pygame.draw.circle(surface, color, center, radius)라는 의미이다
    pygame.draw.circle(background, (0, 0, 0), (x_pos, y_pos), 10)
    pygame.display.update()




# pygame 종료 코드, 이로써 파이게임 창의 종료버튼 X버튼을 누르면 게임 창이 종료된다
pygame.quit()