본문 바로가기
[ Python ]/- 파이썬 문법공부

파이썬 25장(tkinter_09, 미로게임_04, 초기화, 사운드, 아이템, winsound, create_rectangle, delete)

by MRG 2021. 3. 2.
728x90
반응형
728x90

▣ 안녕하세요 ^^
오늘은 저번장에 이어서 미로게임을 좀 더 업그레이드를 진행하도록 하겠습니다.

 

▣ 우선 먼저 플레이어가 미로 밖을 통과하지 못하게 코드를 진행하겠습니다.
여러 가지 방법이 있겠지만, 
저는 키를 입력했을 때에 조건문에서 and 논리 연산자를 추가하여 진행했습니다.
예를 들어 UP일 경우 posY - 1 을 했을 때 
리스트에 값이 0이면 포지션을 움직이게 만들었습니다.
그리고 테스르를 하면 리스트에 요소 값이 1인 경우에는 움직이지 않는 걸 확인할 수 있습니다.
두 가지에 연산 조건이 참일 경우 움직이기 때문입니다. 
그럼 이제 아이템을 추가해보겠습니다.

 

▣ 아이템 png를 추가해주시고요.
아이템을 위치는 저는 리스트에서 2로 지정하였습니다.
그리고 요소 값이 2인 경우 캔버스에서 그려주게 했습니다.
리스트에 요소 값을 2로 하는 건 제가 예시를 위해 한 숫자이지 
실제로 이렇게 하면 헷갈릴 위험이 있으니 
꼭 주석으로 아이템 : 2 , 벽 : 1, 움직이는 길 : 0
이렇게 주석을 처리하면서 하시는 걸 추천드립니다.

 

▣ 그럼 이렇게 당근 아이템이 추가되실 걸 볼 수 있습니다.

 

▣ 그럼 이제 아이템을 먹는 걸 해야겠죠?
우선 아이템에 tag를 추가해주시고요.

 

▣ 아이템을 먹으면 소리가 나와야 하기 때문에 
winsound를 import를 했습니다.

 

▣ 그리고 여기서 수정해줘야 하는 게
우린 리스트에 요소 값이 1이 아닌 경우에만 움직일 수 있게 해야 합니다.
당연한 말이겠지만,
이렇게 수정하지 않으면 아까처럼 했을 경우
2는 0이 아니기 때문에 아이템이 있는 리스트에 요소 값으로 움직이지 않습니다.
그렇기 때문에 벽이 아닌 1이 아닌 경우에만 움직이게 해 주시고요.


▣  gameMap [posY][posX]에 리스트 요소 값을 0으로 초기화해줍니다.
이렇게 하지 않으면 아이템 이미지는 delete() 함수로 사라지지만
리스트에 요소 값은 계속 2이기 때문에 계속 소리가 나오는 오류가 생기게 됩니다.
이 부분 정말 중요합니다. 
우리 눈에는 그렇게 보이지만 컴퓨터는 모든 걸 숫자로 계산하기 때문에
꼭 초기화해주시는 거 잊지 말아 주세요.
그렇게 하면 아이템을 먹고 소리가 나오고 이미지가 사라지는 걸 확인할 수 있습니다. 


▣ 자 오늘은 이렇게 간단하게 벽 위치 제한하고 
아이템을 먹고 소리가 나오게 코딩을 해보았습니다.
다시 말씀드리지만 이 방법은 하나에 방법이지 정답이 아닙니다.
코딩을 공부하실 때 정답이 있다고 생각하고 공부하지 마시고, 
스스로 생각해보시고 자신만에 코딩을 찾아보시면서 공부하시는 걸 추천합니다. 
그럼 다음장에서 뵙겠습니다.
질문 있으시면 댓글 남겨주세요 ^^


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

728x90
반응형

댓글