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

파이썬 24장(tkinter_08, 미로게임_03, 사운드, 아이템, winsound, create_rectangle, delete)

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

▣ 안녕하세요. 
오늘은 저번장에 있는 내용과 이어지지만
새로운 프로젝트를 만들어서 연결해보는 공부를 해보도록 하겠습니다.

 

▣ 먼저 import winsound를 불러오겠습니다.
이건 아이템을 먹었을 때, 
wav파일을 재생하기 위한 모듈입니다. 
그리고 아이템에 대한 X, Y 좌표 변수도 선언 및 정의를 해주도록 하겠습니다. 

 

▣ 그리고 간단하게 Player를 컨버스에 배치해주시고, 
아이템까지 item좌표로 배치해주도록 하겠습니다.
이때 tag 지정하는거 잊지 마세요. 

 

 

▣ 움직이는 코드는 저희가 저번장에서 공부했으니 넘어가고
main함수에 대한 부분을 수정해보도록 하겠습니다.
우선 아이템에 닿였을 때 조건문을 만들어보겠습니다.
많은 방법들이 있겠지만, 
저는 pos - item에 위치를 뺀 값으로 지정했습니다. 
이건 아이템과 플레이어에 위치를 구하기위한 간단한 식입니다.
이 부분은 여러분들만에 방법으로 플레이어와 아이템이 닿였을 때 상황을 만들어보세요.


▣ 중요한건 is_item에 대한 조건문입니다.
이건 아이템이 닿으면 한번 실행하고 그 상황이 끝나야 하기 때문에 이 조건문을 넣어줬습니다.
아이템이 닿이면 아이템에 포지션을 다른 곳으로 바꾸면 괜찮지만,
예를 들어 그 상태에서 아이템만 안보이게 숨기기를 한다면
아이템이랑 주인공이 계속 포지션이 같기 때문에 
소리가 계속 날 겁니다. 
이점 참고해주시고 진행해주세요.


▣ winsound.Playsound() 함수로 소리를 내보겠습니다.
중요한 건 확장자가 wav여야 합니다. 그리고 프로젝트가 있는 위치에 함께 있어야 하니 이점 참고해주세요.
두 번째 매개변수에는 winsound.SND_ASYNC로 한 번만 소리가 나오게 합니다.
winsound.으로 접근하면 어떻게 소리가 나오게 할지에 대한 상황들이 나오게 됩니다.
예를 들어 SND_LOOP을 하게 되면 계속 반복합니다.
그처럼 여러분들이 한번 직접 하나하나 접근해서 사용해보시기 바랍니다. 
canvas.delete()로 그 해당 태그에 캔버스를 지웠습니다.
이것도 하나에 방법이니 숨기는 방법 포지션을 바꾸는 방법 등 어려 분들이 다양하게 해 보세요.


▣ 그리고 저는 아이템을 먹으면 create_rectangle() 함수로 다른 곳에 네모를 그리는 걸 해보았습니다.
그럼 여러 가지 연출을 진행할 수 있겠죠?
직접 한번 아이템을 먹고 난 후에 상황을 만들어서 공부해보세요.

 

 

▣ 테스트를 해보면 이렇게 아이템을 먹으면 아이템이 삭제되고, 
소리가 나오고 네모가 나오는걸 확인할 수 있습니다.


▣ 오늘은 여기까지 아이템을 먹으면 소리가 나오고 삭제되고 
다른 곳에 네모를 그리는 연출을 진행해보았습니다.
꼭 제가 말씀드린 다른 쪽으로 응용해보라는 말씀 꼭 실천해보시고 공부하시면 좋을 거 같습니다.
그리고 오늘 공부한 내용을 저번장에 만들었던 미로에 넣어보세요.
질문 있으시면 댓글 남겨주시고요.
다음장에서 뵙겠습니다.


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

728x90
반응형

댓글