⏰

001 time

import pygame as pg pg.init() ν™”λ©΄κ°€λ‘œκΈΈμ΄ = 600 ν™”λ©΄μ„Έλ‘œκΈΈμ΄ = 800 ν™”λ©΄ = pg.display.set_mode((ν™”λ©΄κ°€λ‘œκΈΈμ΄, ν™”λ©΄μ„Έλ‘œκΈΈμ΄)) while True: for 이벀트 in pg.event.get(): if 이벀트.type == pg.QUIT: quit() μ‹œκ°„ = pg.time.get_ticks() print(μ‹œκ°„)
Β 

μΆ”κ°€λ‚΄μš©

Β 
import pygame as pg pg.init() ν™”λ©΄κ°€λ‘œκΈΈμ΄ = 600 ν™”λ©΄μ„Έλ‘œκΈΈμ΄ = 800 ν™”λ©΄ = pg.display.set_mode((ν™”λ©΄κ°€λ‘œκΈΈμ΄, ν™”λ©΄μ„Έλ‘œκΈΈμ΄)) 흰색 = (255, 255, 255) νŒŒλž‘μƒ‰ = (0, 255, 0) μ›μœ„μΉ˜ = [30, 50] μ‹œκ³„ = pg.time.Clock() while True: ν™”λ©΄.fill(흰색) 흐λ₯Έμ‹œκ°„ = μ‹œκ³„.tick(60) / 1000 # μ΄ˆλ‹Ή 60ν”„λ ˆμž„μ΄ λŒμ•„κ°€λŠ” 것을 의미 μ›μœ„μΉ˜[0] += 200 * 흐λ₯Έμ‹œκ°„ if μ›μœ„μΉ˜[0] > 570: μ›μœ„μΉ˜[0] = 30 ν‘œμ‹œν• μ›μœ„μΉ˜ = (int(μ›μœ„μΉ˜[0]), int(μ›μœ„μΉ˜[1])) pg.draw.circle(ν™”λ©΄, νŒŒλž‘μƒ‰, ν‘œμ‹œν• μ›μœ„μΉ˜, 20) pg.display.update() for 이벀트 in pg.event.get(): if 이벀트.type == pg.QUIT: quit()
Β 
μœ„μ— μ½”λ“œλŠ” 원이 였λ₯Έμͺ½μœΌλ‘œ μ΄λ™ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€.
Β 
캐릭터가 μ›€μ§μ΄λŠ” κ²Œμž„λ“€μ— 경우 ν”„λ ˆμž„μ— λ”°λ₯Έ 동기화 μž‘μ—…μ΄ ν•„μš”ν•©λ‹ˆλ‹€.
get_ticks() ν•¨μˆ˜λŠ” pg.init()κ°€ 호좜된 ν›„ κ±Έλ¦° μ‹œκ°„μ„ milli second둜 λ°˜ν™˜ν•΄ μ£ΌκΈ° λ•Œλ¬Έμ— ν˜„μž¬ κ²Œμž„ μ‹œκ°„μ„ μ•ŒκΈ°μ—λŠ” μ ν•©ν•˜μ§€λ§Œ ν”„λ ˆμž„μ— λ”°λ₯Έ μ‹œκ°„ μ°¨λ₯Ό κ³„μ‚°ν•˜κΈ°μ—λŠ” μ ν•©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
μ™œλƒν•˜λ©΄ μ΄μ „κΉŒμ§€ μ§„ν–‰λ˜μ—ˆλ˜ μ‹œκ°„κ³Ό ν˜„μž¬ μ§€λ‚œ μ‹œκ°„μ˜ μ°¨λ₯Ό ν”„λ ˆμž„ μ‹œκ°„μœΌλ‘œ κ³„μ‚°λ˜μ–΄ 이것을 μ›€μ§μž„μ— λ°˜μ˜ν•΄μ£Όμ–΄μ•Ό 되기 λ•Œλ¬Έμ— 계산과정이 λ³΅μž‘ν•©λ‹ˆλ‹€.
Β 
이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” pg.time.Clock 클래슀의 ν•¨μˆ˜μΈ tickν•¨μˆ˜λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€
μ‹œκ³„.tick(frames) ν•¨μˆ˜λŠ” μ•ˆμ— 넣은 ν”„λ ˆμž„ μˆ˜μ— λ”°λ₯Έ μˆœκ°„ μ‹œκ°„μ„ 계산해 λ”œλ ˆμ΄ μ‹œμΌœμ€λ‹ˆλ‹€. 그리고 λ”œλ ˆμ΄λœ μ‹œκ°„μ„ λ°˜ν™˜ν•΄μ£ΌκΈ° λ•Œλ¬Έμ— μΌμ •ν•œ ν”„λ ˆμž„μœΌλ‘œ 계산을 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
λ§Œμ•½ 반볡문 μ•ˆμ— tickκ³Ό 같은 ν”„λ ˆμž„μ„ λ§žμΆ°μ£ΌλŠ” μ½”λ“œκ°€ μ—†λ‹€λ©΄ μ½”λ“œλ₯Ό μ‹€ν–‰μ‹œν‚€λŠ” 컴퓨터에 따라 μ›μ˜ 이동속도가 λ‹¬λ¦¬μ§€κ²Œ λ©λ‹ˆλ‹€.
Β 
β€» tick() / 1000μ—μ„œ 1000을 λ‚˜λˆˆ μ΄μœ λŠ” tick ν•¨μˆ˜λŠ” milli second λ‹¨μœ„μ΄κΈ° λ•Œλ¬Έμ— 1/1000μ΄ˆκ°€ 1둜 ν‘œμ‹œ 되기 λ•Œλ¬Έμ— 1초λ₯Ό 1둜 μ‚¬μš©ν•˜κΈ° μœ„ν•˜μ—¬ λ‚˜λˆ„μ—ˆμŠ΅λ‹ˆλ‹€.
β€» pg.draw.circle ν•¨μˆ˜μ—μ„œ ν‘œμ‹œν• μ›μœ„μΉ˜λ₯Ό ꡳ이 μ‚¬μš©ν•œ μ΄μœ λŠ” μ’Œν‘œλ₯Ό νŒŒλΌλ―Έν„°λ‘œ 넣을 λ•Œ μ’Œν‘œκ°€ μ •μˆ˜λ§Œ κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.
Β