본문 바로가기
[ CODING STUDY ]/》파이썬 공부

파이썬 28장(pygame_03, 이미지불러오기, 키 연속으로 입력pygame.image.load, scale, pygame.event.get())

by MRG 2021. 5. 6.
728x90
반응형

▣ 안녕하세요 ^^ 
오늘도 pygame을 공부해보겠습니다. 

 

▣ 우선 이미지를 불러오겠습니다. 
우선 player_img라는 변수 이름으로 pygame.image.load() 함수로  이미지를 불러오겠습니다.
load() 함수에 매개변수 값에 우리가 사용할 이미지에 경로를 넣어줍니다. 
tkinter처럼 이미지 확장자가 png인 파일을 선택해주세요.
그럼 player_img에 이미지를 불러왔고 이제 크기를 조절하겠습니다.
pygame.transfrom.scale()을 통해 먼저 어떤 이미지를 조절할지 매개변수를 놓고
, 콤마를 한 후에 () 튜플 형식으로 x, y 크기를 지정해줍니다. 


▣ 그리고 이미지를 위치를 변수로 선언해주세요.
player_posX, player_posY 제가 0으로 했지만 여러분들은 플레이가 
처음 위치를 어디로 할지 생각해서 지정해주세요.

 

▣ 그리고 while문에서 
오른쪽 키와 왼쪽 키를 누르면 player포지션이 바뀌는 코드를 진행했습니다.
if event.type == pygame.KEYDOWN이고 if event.key == pygame.K_RIGHT이면 
x 포지션이 + 10으로 지정해줍니다.
이건 tkinter에서도 말씀드렸지만, 왼쪽 상단 모서리가 x = 0, y = 0 좌표이기 때문에
오른쪽으로 가려면 x 값을 + 를 해줘야합니다. 
그럼 반대로도 조건문을 작성해주시면 됩니다. 


▣ 그런다음에 중요한 건 이제 계속 이미지를 그려줘야 합니다. 
이건 screen,blit()함수를 사용하시면 됩니다.
화면에 그려준다라는 느낌이라고 생각하시면 되고,
처음 매개변수 값은 그려줄 이미지 그리고 () 튜플 형식으로 포지션을 넣어주시면 됩니다.

 

▣ 그리고 컴파일을 진행해보시면 키를 누를때마다 오른쪽 왼쪽으로 움직이는 걸 확인하실 수 있으실 겁니다. 
그런데 먼가 이상하죠?
뚝뚝 끊기게 됩니다. 
이건 조건문으로 연속적으로 값을 바꿔주는게 아닌 조건문에 따라 한 번씩 값을 바꿔주기 때문입니다. 
연속적으로 값을 바꿀수 있게 또 다른 조건문을 만들어보겠습니다.

 

▣ 먼저 키를 누른 상태에 대한 변수를 정의해줍니다. 
오른쪽 키를 눌렀을때 왼쪽 키를 눌렀을 때에 대한 변수입니다. 
그리고 KEYDOWN 키를 눌렀을 경우 상태를 True로 바꿔주시고
KEYUP 키를 누르고 땐 경우 False로 바꿔주는 코드로 수정해주세요.

 

▣ 그리고 밑에 새로운 조건문을 만들어주세요.
if 키에 상태가 True라면 포지션에 값을 계속 바꿔줘라는 코드를 넣어줍니다. 
그리고 실행을 해보면

 

▣ While문으로 계속 조건문에 대한 상태를 검사하기 때문에 
누르고 있을 때 움직이게 됩니다.


▣ 자 오늘은 이렇게 이미지를 불러오고 키를 눌렀을 때 해당 이미지를 움직이는 코드를 공부해보았습니다. 
간단한 내용이지만 조금에 알고리즘이 나왔습니다. 
이 부분은 게임을 만드시면 여러분만에 알고리즘이 생각나실 거라 생각합니다. 
질문이 있으시면 댓글남겨주세요.
다음장에서 뵙겠습니다.


▣ 포기하지마세요!!! 저도 했습니다!!! 파이팅!!!

728x90
반응형

댓글