๊ฐ์ธ ํ๋ก์ ํธ ํ์ด์ฌ ๊ฒ์!
๋ง๋งํ๋ค ์๊ฐ๋ง๊ณ ์ผ๋จ ํด๋ณด์!!!
pygame ๊ธฐ๋ณธ ์คํ ๊ตฌ์กฐ
1. pygame ์ ์ธ(import)
# pygame ์ pg ๋ก ์ค์ฌ ์ฌ์ฉ ๊ฐ๋ฅ
import pygame as pg
2. pygame ์ด๊ธฐํ(pygame.init())
# pygame ์ด๊ธฐํ
pg.init()
3. pygame ์์ ์ฌ์ฉํ ์ ์ญ ๋ณ์ ์ ์ธ
- size : x ํฌ๊ธฐ์ y ํฌ๊ธฐ
- screen : pygame.display.set_mode(size)
# pygame GUI ์ฐฝ ๊ตฌ์ฑ
size = [400, 300] # ์ฐฝ ํฌ๊ธฐ
# ์์ฑํ GUI ์ฐฝ์ ํฌ๊ธฐ ์ค์
# ํ๋ฉด์ ์ด๊ธฐํ ํ๊ฑฐ๋, ํ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ ๋ฑ์ ํด๋น screen ๋ณ์๋ฅผ ํตํด ์ ์ฉ
screen = pg.display.set_mode(size)
-pygame. display.set_caption("์ด๋ฆ")
# GUI ์ฐฝ์ด ์ผ์ง ๋, ์ฐฝ์ ์ด๋ฆ์ ์ค์
pg.display.set_caption("Game Title")
- clock : pygame.time.Clock()
# ํ๋ฉด์ ์ด๋น ๋ช๋ฒ ์ถ๋ ฅํ๋๊ฐ๋ฅผ ์ค์
done = False
clock = pg.time.Clock()
4. pygame ๋ฉ์ธ ๋ฃจํ(while๋ฌธ)
- ๊ฒ์ ์คํ ๋์ ๋ฐ์ํ ์ด๋ฒคํธ์ ๋ํ ์ค์
- ์ฌ์ฉ์์ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ
- pygame Event ์ค์
# ๋ฉ์ธ ์ด๋ฒคํธ ๋ฃจํ
# ๋ง์ฐ์ค, ํค๋ณด๋ ํด๋ฆญ์ ๋ํ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํด์ for๋ฌธ์ ํตํด ๊ฒ์ฌํ๋ ๊ตฌ์กฐ
for event in pg.event.get():
# ์ด๋ฒคํธ๊ฐ ๋ง์ฝ .QUIT ๊ฐ๊ณผ ์ผ์นํ๋์ง ๊ฒ์ฌ, GUI ์ฐฝ์์ X ๋ฒํผ ๋๋ฅด๋ฉด ์ข
๋ฃ
if event.type == pg.QUIT:
# ์ข
๋ฃ ์ด๋ฒคํธ๊ฐ ๋ง๋ค๋ฉด ๋ฉ์ธ ๋ฃจํ์ while๋ฌธ์ด ๋ ์ด์ ๋์๊ฐ์ง ์๋๋ก ํ๊ธฐ ์ํด ๋ฐ๊ฟ์ฃผ๋ ๊ฒ
# ์์ ์ฅ์น ํ์
done = True
pygame ํ๋ฉด ์ค์
screen.fill(WHITE) # ์ฐฝ์ ์ ์ฒด ํ๋ฉด์ ์ฑ์์ฃผ๋ ํจ์ ์คํ
- ์ฌ์ฉ์ ํ์
# ์ฌ์ฉ์์ ํ์
pg.draw.polygon(screen, GREEN, [[30, 150], [125, 100], [220, 150]], 5)
pg.draw.polygon(screen, GREEN, [[30, 150], [125, 100], [220, 150]], 0)
pg.draw.lines(screen, RED, False, [[50, 150], [50, 250], [200, 250], [200, 150]], 5)
pg.draw.rect(screen, BLACK, [75, 175, 75, 50], 5)
pg.draw.rect(screen, BLUE, [75, 175, 75, 50], 0)
pg.draw.line(screen, BLACK, [112, 175], [112, 225], 5)
pg.draw.line(screen, BLACK, [75, 200], [150, 200], 5)
- pygame.draw ํจ์ ์ข
๋ฅ
๋๋ณด๊ธฐ
์ฌ๊ฐํ - pygame.draw.rect
์ผ๊ฐํ - pygame.draw.polygon
์ - pygame.draw.circle
ํ์ - pygame.draw.ellipse
์(ํน์ ๋ถ๋ถ๊น์ง ๊ทธ๋ฆฌ๊ธฐ) - pygame.draw.arc
์ - pygame.draw.line
์ฌ๋ฌ ๊ฐ์ ์ - pygame.draw.lines
๋ถ๋๋ฌ์ด ์ - pygame.draw.aaline
์ฌ๋ฌ ๊ฐ์ ๋ถ๋๋ฌ์ด ์ - pygame.draw.aalines
- ๋ฉ์ธ ๋ฃจํ ์
๋ฐ์ดํธ
# ์ง๊ธ๊น์ง ํ๋ฉด์ ์์ฑํ ๋ชจ๋ ํ์๋ฅผ ์
๋ฐ์ดํธ ํด์ฃผ๊ธฐ ์ํ ํจ์
# ๋ฉ์ธ ๋ฃจํ์ ๋์ ํด๋นํ๋ ํ์ ์กฐ๊ฑด
pg.display.flip()
๊ฒฐ๊ณผ
๋ค๋ฅธ ์์ค ์ฝ๋ ์์ ์ ๋ง ํ์ด
import sys
import pygame as pg
# ์์ ๋ณ์
YELLOW = (255, 255, 0)
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GRAY = (150, 150, 150)
def game(): # ํจ์ ์ ์
pg.init() # pygame ์ด๊ธฐํ
pg.display.set_caption('Mini Game') # pygame ์ ์ฐฝ ์ด๋ฆ
main_window = pg.display.set_mode((800, 600)) # pygame ์ฐฝ ํฌ๊ธฐ
clock = pg.time.Clock() # pygame ์ ์ถ๋ ฅ ์๊ฐ
while True: # pygame ์ ๋ํ ๋ฉ์ธ ๋ฃจํ
for e in pg.event.get(): # ๊ฐ์งํ ์ด๋ฒคํธ ๊ฐ์ e์ ๋ณ์ ์ง์
if e.type == pg.QUIT:
pg.quit()
sys.exit()
main_window.fill(BLACK) # pygame ์ ์ฐฝ ์ ์ฒด ํ๋ฉด์ ๊ตฌ์ฑํ๋ ์
pg.draw.circle(main_window, YELLOW, [200, 200], 30) # ์์ ๊ทธ๋ ค์ฃผ๋ ํจ์
pg.display.update() # pygame ์
๋ฐ์ดํธ
clock.tick(10) # ํ๋ ์ ์ค์
if __name__ == '__main__':
game()