1. 헷갈리는 import turtle 하는법 정리
import turtle
- 모듈 불러오기
- 사용시 turtle.left() 이런식으로
import turtle as t
- 모듈 불러오고, turtle을 t로 줄여서 사용하기로 함
- t.left()
+ turtle 펜을 여러개 설정해야 할 경우 as t를 쓰는 것 보다는
t1 = turtle.Turtle() #원을 그리는 거북이
t2 = turtle.Turtle() #삼각형 그리는 거북이
이런식으로 펜의 구분을 위해 따로 불러와주자.
from turtle import *
- 모듈 불러오고, turtle 생략
- left()
2. turtle 모듈 + while true 반복문 + 여러가지 라이브러리 응용
#!pip install keyboard
#!를 붙이는건 (아마도) jupyter notebook에서 작동하는 스크립트인 것으로 알고 있음
#keyboard는 대부분의 파이썬 작동 사이트에서 안깔려 있을 확률이 높으니 설치해준다.
#다른 모듈도 없다고 한다면 위의 구문을 사용해 바꿔서 깔아줄 것
## 필요한 모듈 불러오기 ##
import time
import datetime as dt
import turtle
import keyboard
## 펜 설정 & 거북이 숨기기 ##
t1 = turtle.Turtle() #디지털 시계 디스플레이
t2 = turtle.Turtle() #사각형 시계 박스
t3 = turtle.Turtle() #전체 화면
t1.hideturtle()
t2.hideturtle()
t3.hideturtle()
## datetime모듈로 현재시각 불러오기 ##
sec = dt.datetime.now().second
min = dt.datetime.now().minute
hr = dt.datetime.now().hour
## t2 스타일, 자리 설정 ##
t2.shape('turtle')
t2.pensize(3)
t2.color('black')
t2.penup()
t2.goto(-20,0)
t2.pendown()
## t2로 사각형 박스 그리기 ##
## 가로 300, 세로50인 박스 ##
t2.st()
t2.forward(150)
t2.right(90)
t2.forward(50)
t2.right(90)
t2.forward(300)
t2.right(90)
t2.forward(50)
t2.right(90)
t2.forward(150)
t2.ht()
## 시간 표시해줄 t1 위치 옮기기 ##
t1.left(180)
t1.forward(120)
t1.left(90)
t1.forward(45)
## 현재 시각 갱신 ##
while True:
t1.clear() #1초 전에 그린 것 삭제
t1.write(str(hr).zfill(2) + "시 " + str(min).zfill(2) + "분 " + str(sec).zfill(2) + "초 ",
font=("Arial Narrow", 25, "bold")) #zfill() = 0 붙여주는 함수, 없어도 됨
time.sleep(1) #1초마다 write 해주기 위해서, 안해주면 1/1000초? 씩 받아온다...
sec += 1 #1초가 지나면 sec에 1을 더해줌
if sec == 60: #60초가 되면
sec = 0 #0초로 돌리고
min += 1 #1분 추가
if min == 60:
min = 0
hr += 1
if hr == 24:
hr = 0
if keyboard.is_pressed("s"): #keyboard 모듈 사용해서 키보드 s를 누르면
print("종료 되었습니다.") #출력
break #while True 반복문 종료
결과 화면이다. 사진이어서 안나오지만 43 -> 44 -> 45초 이렇게 바뀌며 진짜 디지털 시계의 역할을 한다.
keyboard 모듈로 인해 s를 누르면 종료된다.
## space를 누르면 종료하는 구문 ##
def stop():
t1.reset()
t2.reset()
t3.reset()
t1.listen()
t1.onkeypress(stop, "space")
원래는 이렇게 turtle 모듈에 있는 onkeypress를 사용해 정지 시키려고 했다.
그러나 여러개의 터틀을 사용하고 있어서 그런지 t1만으로는 정지가 안된다.
'게임 제작 관련 > 개발환경(프로그램)' 카테고리의 다른 글
R plot함수 (0) | 2022.10.27 |
---|---|
R 시각화(그래프 그리기) 전 준비 (0) | 2022.10.27 |
Python format함수(문자열 출력 방법) (0) | 2022.10.14 |
Python def 함수정의, return 반환문 (1) | 2022.10.13 |
R subset, which함수 & 패키지 다루기(엑셀 등) (0) | 2022.10.11 |
댓글