▣ 안녕하세요^^
오늘은 키를 입력받고 이미지를 움직여보는 걸 해보도록 하겠습니다.
▣ 먼저 키를 입력받으려면 bind() 함수를 사용해야 합니다.
bind 함수에 첫번째 매개변수 값은 이벤트 값을 넣어주고 두 번째에는 키를 입력하면
호출하고 값을 전달해줄 함수를 지정해줍니다.
▣ 이벤트에 종류로는 주석에 나와있는것 처럼
"<KeyPress>" , "<Key>"는 키를 입력할 때 함수에 매개변수 값이 전달이 되고
"<KeyRelease>" 키 입력 후 땐 후에 값을 전달
"<Motion>" 마우스 포인터를 움직일 때 전달
"<ButtonPress>", "<Button>" 각각 마우스를 클릭하면 전달이 됩니다.
▣ 저희는 "<Key>"키를 입력하면 전달하게 하게 지정하고
KeyClick함수를 호출하게 합니다.
입력하면 KeyClick(e) - e에 값이 전달되고
전역 변수에 접근하여
e.keycode에 접근하여 그 값을 key에 전달하고
출력해보면 이렇게 키 값이 전달되는 걸 확인할 수 있습니다.
그럼 이 숫자 값을 이용해서 값이 몇이면 이동해라라고 만들어주면 되겠지만,
다른 방법도 존재합니다.
▣ e.keysym으로 접근하게 되면 눌러진 키에 이름이 대입되는 걸 확인할 수 있습니다.
그럼 방향키를 누르면 그 값으로 이름이 대입되는 걸 확인할 수 있습니다.
그럼 이제 이 값을 이용해서 캔버스에 이미지를 넣어서 그 이미지를 움직이게 코드를 진행해보겠습니다.
▣ 먼저 전역 변수로 Posx, Posx 포지션에 x, y값을 지정해줍니다.
그리고 함수를 하나 선언하여
key 값이 Up이면 Posy - 10이 되게 합니다.
왜냐 x0, y0에 값은 화면에 오른쪽 구석이기 때문입니다.
그렇게 각각 키값을 지정하고 마지막 중요한 코드가 있습니다.
▣ cavas.coords() 함수는 해동 태그에 이미지에 위치를 이동하는 코드입니다.
태그는 쉽게 우리가 페이스북이나 인스타그램처럼
그 이미지에 꼬리표를 지정한다고 생각하시면 됩니다.
▣ 그리고 이렇게 canvas.create_image(tag="Rabbit") 태그를 지정한 걸 확인할 수 있습니다.
그리고 tk.bind()로 함수를 호출하고 실행하면
▣ 이렇게 이미지가 키를 누를 때마다 움직이는 걸 확인할 수 있습니다.
이미지가 너무 크네요 ^^;;;
▣ 오늘은 이렇게 간단하게 이미지를 움직이는 코드를 진행했습니다.
이제 오늘 배운 내용을 이용해서 활용해보시고,
절대 제가 준 코드가 정답이 아님을 기억하시고 스스로 코드를 만들어보세요.
질문 있으시면 댓글 남겨주세요.
▣ 포기하지 마세요!!! 저도 했습니다. 파이팅!!!
'[ Python ] > - 파이썬 문법공부' 카테고리의 다른 글
파이썬 23장(tkinter_07, 미로게임_02, 플레이어 이동, keysym, after, coords) (9) | 2021.01.05 |
---|---|
파이썬 22장(tkinter_06, 미로게임_01, 도형그리기, 게임맵만들기, canvas.create_rectangle, 2차원 리스트, 리스트) (6) | 2020.12.31 |
파이썬 20장(tkinter_04, 메시지박스 , after(), 시간, GUI, import, 타이머) (0) | 2020.12.07 |
파이썬 19장(tkinter_03, import, GUI, checkbutton, 체크버튼, boolean) (2) | 2020.11.30 |
파이썬 18장(tkinter_02, import, GUI, 텍스트필드, 버튼, get()) (0) | 2020.11.17 |
댓글