10일차

Kangdh·2026년 8월 25일

파이썬 교육

목록 보기
11/33

- 키보드 입력을 받아 이미지를 이동시키는 코드

for event in pygame.event.get():
if event.type == pygame.QUIT:
system_exit = 1
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
to_x -= 5
if event.key == pygame.K_RIGHT:
to_x += 5
if event.key == pygame.K_UP:
to_y -= 5
if event.key == pygame.K_DOWN:
to_y += 5
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT:
to_x = 0
if event.key == pygame.K_RIGHT:
to_x = 0
if event.key == pygame.K_DOWN:
to_y = 0
if event.key == pygame.K_UP:
to_y = 0

키보드 값을 어떻게 입력받아야할지 몰라 인터넷에 검색하여 함수를 찾아서 적용하였다. pygame.K_방향이 해당 키를 나타내는 함수이고 event.key가 키 입력을 받는 함수이다. pygame.KEYDOWN 과 pygame.KEYUP 은 각각 키를 눌렀을때와 뗐을때의 상태를 나타내는 함수이다.

처음에는 이걸 어떻게 해야할까 했는데 pygame을 찾아보니 자세하게 나와있어서 적용시키기 편했다.

- 이미지가 화면 밖으로 탈출하는 것을 막기위한 벽 막기 코드

if hero.x < 0:
    hero.x = 0
elif hero.x > width-hero.width:
    hero.x = width-hero.width
elif hero.y < 0:
    hero.y = 0
elif hero.y > height - hero.height:
    hero.y = width - hero.height

처음엔 이걸 생각만 하고있었다.

조작하는 객체를 못나가게 막으려면 테두리를 설정해줘야하는데 x는 어찌저찌 코드로 짰어도 y를 못짜고 있었는데 그림판으로 좌표는 x는 + 방향으로 증가하고 y는 -로 증가한다는걸 그려보다 알았고 결과적으로 구현에 성공하게 되었다.

- 투사체 발사하기

투사체 = 스페이스

  • 스페이스를 누르면 발사
    if event.key == pygame.K_SPACE:
  • 투사체 > y=0일때까지 날아감
  • while missile.y == 0:
    pass
    위치는 내 기체(기체 x값 중간)에서 발사됨
    missile.x =
  • 기체와 탄알을 그룹화 시켜서 움직일때마다 같이 다니게 하기 - 기체 중앙에 미슬 이미지를 숨겨놓기
    : 문제 - 발사하고 나서도 미슬이 기체의 경로를 쫓아다님 > 발사할때는 다른 변수를 넣어준다면?
  • 이미지를 안띄우고 스페이스를 누를때마다 이미지가 나와서 날아가게 하기
  • 여러번 불러오기

와 같은 고민을 했다.
도저히 어떻게 이걸 구현을 해야할지 몰라서 집에 와서도 종일 이 생각만 했는데, 미슬을 기체 앞까지 두는데는 성공했다. 미슬은 리스트를 사용해서 갯수에 제한을 걸어주는걸 해야한다고 들었다. 이걸 하면서 아직 리스트는 제대로 못다룬다고 생각하여 다시 리스트쪽을 보강해야겠다.

0개의 댓글