-
[ํฐํ ๊ทธ๋ํฝ] ์ด๋ฒคํธ์ ํจ์๋ก๋ด๊ต์ก/2ํ์ฐจ_ํ์ด์ฌ 2022. 1. 11. 19:35
1. ์ด๋ฒคํธ๋?
- ์ด๋ฒคํธ๋ ํ๋ก๊ทธ๋จ์ ์ํด ๊ฐ์ง๋๊ณ ์ฒ๋ฆฌ๋ ์ ์๋ ๋์์ ๋งํฉ๋๋ค.
์) ํค๋ณด๋๋ฅผ ๋๋ ์ ๋, ๋ง์ฐ์ค๋ฅผ ํด๋ฆญํ์ ๋
- ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ์ ํด์ง ์ฝ๋๊ฐ์ ๊ฐ์ง ํจ์๊ฐ ์คํ๋ฉ๋๋ค.
์ด๋ฒคํธ ์์ 1
- Turtle ๋ชจ๋์ ํค๋ณด๋ ์ ๋ ฅ์ Screen ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด์ ์ฒ๋ฆฌํฉ๋๋ค.
- Screen ๊ฐ์ฒด์๋ ํค๋ณด๋์ ๋ง์ฐ์ค ์ ๋ ฅ์ ์ ์ดํ๋ ๋ค์ํ ํจ์์ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
- Screen ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ง ์๊ณ ๋ฐ๋ก ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค.
๊ธฐ๋ณธ ์์ ํค๋ณด๋ ํค(Key) screen = turtle.Screen()
screen.onkey(ํจ์๋ช , '์ฝ๋')
screen.listen()์์ชฝ ํ์ดํ 'Up' ์๋์ชฝ ํ์ดํ 'Down' ์ผ์ชฝ ํ์ดํ 'Left' ์ค๋ฅธ์ชฝ ํ์ดํ 'Right' # ํค๋ณด๋ ํค : ์ํ๋ฒณ ์๋ฌธ์, space ๋ฑ ...
# onkey(ํจ์๋ช , '์ฝ๋') - ํค๋ณด๋๋ฅผ ์ค๋ซ๋์ ๋๋ฌ๋ ํ๋ฒ๋ง ์ด๋ฒคํธ๊ฐ ๋ฐ์
# onkeypress(ํจ์๋ช ,'์ฝ๋') - ํค๋ณด๋๋ฅผ ์ค๋ซ๋์ ๋๋ฅด๋ฉด ์ง์์ ์ผ๋ก ์ด๋ฒคํธ๊ฐ ๋ฐ์
์์ ์์ค(22-key_event.py) ์์ ์์ค(22-key_event2.py) import turtle as t
t.shape('turtle')
scr = t.Screen()
def right():
t.setheading(0)
t.forward(50)
def up():
t.setheading(90)
t.forward(50)
def left():
t.setheading(180)
t.forward(50)
def down():
t.setheading(270)
t.forward(50)
scr.onkey(right,'Right')
scr.onkey(up,'Up')
scr.onkey(left,'Left')
scr.onkey(down,'Down')
scr.listen()
#t.mainloop()import turtle as t
t.shape('turtle')
def right():
t.setheading(0)
t.forward(50)
def up():
t.setheading(90)
t.forward(50)
def left():
t.setheading(180)
t.forward(50)
def down():
t.setheading(270)
t.forward(50)
t.onkey(right,'Right')
t.onkey(up,'Up')
t.onkey(left,'Left')
t.onkey(down,'Down')
t.listen()
#t.mainloop()์ค์ต1) ํค๋ณด๋ ์ํ๋ฒณ์ ์ ๋ ฅํ๋ฉด ์ ์ ์๊น์ด ๋ฐ๋๋๋ก ํ๋ก๊ทธ๋จ์ ์์ ํด ๋ด ์๋ค.
์ค์ต2) 'space' ํค๋ฅผ ๋๋ฅด๋ฉด ๊ทธ๋ฆผ์ด ์ง์์ง๋๋ก ํ๋ก๊ทธ๋จ์ ์์ ํด ๋ด ์๋ค.
์ด๋ฒคํธ ์์ 2
- ๋ง์ฐ์ค๋ก ํ๋ฉด์ ํด๋ฆญํ์ ๋์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ๋ง์ฐ์ค๋ฅผ ํด๋ฆญํ ์ ์ ์ขํ(x,y)๋ฅผ ์ธ์๋ก ํจ์๊ฐ ์คํ๋ฉ๋๋ค.
์์ ์์ค(23-click_event.py) import turtle as t
t.speed(0)
t.pensize(2)
t.hideturtle()
t.onscreenclick(t.goto)
t.listen()
#t.mainloop()t.goto #๊ฑฐ๋ถ์ด์ ๋ฏธ๋ฆฌ ์ ์๋ goto ํจ์๋ฅผ ํธ์ถํฉ๋๋ค.
#๋ง์ฐ์ค ํด๋ฆญํ ์์น๋ก ์์ง์2. ๋ณ ๊ทธ๋ฆฌ๊ธฐ
๋ณ์ ๊ทธ๋ฆฌ๋ ํจ์๋ฅผ ์ ์ํ์ฌ ํ๋ฉด์ ๋ณ์ ๊ทธ๋ ค๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์์ ์์๋ ์ง์ ํ ์์น์ ๋ณ์ ๊ทธ๋ ค๋ณด๊ณ , ๋ ๋ฒ์งธ ์์ ์์๋ ์ด๋ฅผ ์์ ํ์ฌ ์์์ ์์น์ ์ฌ๋ฌ ๊ฐ์ง ํฌ๊ธฐ์ ๋ณ 20๊ฐ๋ฅผ ๊ทธ๋ ค๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ง์ง๋ง ์์ ์์๋ ๋ง์ฐ์ค๋ฅผ ํด๋ฆญํ๋ ๊ณณ์ ๋ณ์ ๊ทธ๋ ค๋ณด๊ฒ ์ต๋๋ค.
์์ ์์ค(24-star_def.py) import turtle as t
def star():
t.begin_fill()
for i in range(5):
t.forward(30)
t.left(144)
t.end_fill()
t.bgcolor('black')
t.color('yellow')
t.ht()
t.speed(10)
star()
t.penup()
t.goto(100,100)
t.pendown()
star()์์ ์์ค(24-star_def2.py) import turtle as t
import random as r
def star(x,y):
t.penup()
t.goto(x,y)
t.pendown()
size = r.randint(15,30)
t.begin_fill()
for i in range(5):
t.forward(size)
t.left(144)
t.end_fill()
t.bgcolor('black')
t.color('yellow')
t.ht()
t.speed(10)
for i in range(20):
star(r.randint(-300,300),r.randint(50,300))์์ ์์ค(25-star_click.py) import turtle as t
import random as r
def star(x,y):
t.penup()
t.goto(x,y)
t.pendown()
size = r.randint(15,30)
t.begin_fill()
for i in range(5):
t.forward(size)
t.left(144)
t.end_fill()
t.bgcolor('black')
t.color('yellow')
t.ht()
t.speed(10)
t.onscreenclick(star)
t.listen()
#t.mainloop()3. ๋์ก์ด ๊ทธ๋ฆฌ๊ธฐ
์์ ์์ค(26-snow_def.py) import turtle as t
import random as r
def snow():
snowsize = r.randint(8,12)
for i in range(12):
t.forward(snowsize)
t.backward(snowsize)
t.right(360/12)
t.bgcolor('black')
t.color('white')
t.pensize(2)
t.ht()
t.speed(0)
for j in range(20):
t.penup()
x = r.randint(-350,350)
y = r.randint(0,350)
t.goto(x,y)
t.pendown()
snow()'๋ก๋ด๊ต์ก > 2ํ์ฐจ_ํ์ด์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํฐํ ๊ทธ๋ํฝ] ํฐํ๋ฐ (0) 2022.01.11 [ํฐํ ๊ทธ๋ํฝ] ๊ธ์ ์ฐ๊ธฐ (0) 2022.01.11 [ํฐํ ๊ทธ๋ํฝ] ๊ธฐ๋ณธ ํจ์ (0) 2022.01.11 [ํฐํ ๊ทธ๋ํฝ] ์ค๋ฅ๊ธฐ ๊ทธ๋ฆฌ๊ธฐ (0) 2021.06.24 [2ํ์ฐจ-5] ํจ์ (0) 2020.08.21