무작위 숫자
Coddy Pygame 여정의 게임 창에서 배우는 Python 섹션에 포함된 레슨. 32개 중 28번째.
Python의 random 모듈은 무작위로 숫자를 선택합니다. 프로그램 맨 위에서 import pygame 위나 아래에 가져옵니다:
import randomrandom.randint(a, b)는 a부터 b까지의 정수를 반환하며, 양 끝값도 포함됩니다. random.choice(items)는 목록에서 항목 하나를 선택합니다:
x = random.randint(20, 620)
size = random.choice([3, 4, 5])호출할 때마다 다시 선택하므로, 새 값이 필요할 때 호출하세요. 스페이스 키를 눌러 배치하는 별:
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
x = random.randint(20, 620)
y = random.randint(60, 300)
stars.append((x, y))stars.append((x, y))에서 괄호가 두 겹인 점에 유의하세요. append는 항목 하나를 받으며, 그 항목은 튜플 (x, y)입니다. 대신 게임 루프에 들어가기 전에 x와 y를 한 번만 선택하면, 별은 모두 같은 위치에 놓입니다.
챌린지
중급스페이스바를 눌러 별을 흩뿌려 보세요:
- 맨 위에
import random을 추가하세요. K_SPACE에 대한KEYDOWN이벤트가 발생하면x = random.randint(20, 620)과y = random.randint(60, 300)을 선택하고,(x, y)를stars에 추가하세요.- 클릭으로도 이전처럼 계속 별을 추가합니다.
직접 해보기
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# 게임 루프가 시작되기 전에 여기서 필요한 것들을 설정하세요.
stars = []
font = pygame.font.Font(None, 36)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
stars.append(event.pos)
# 매 프레임마다 여기서 필요한 것들을 변경하세요.
screen.fill((20, 24, 48))
# 화면을 채운 후 여기서 그리세요.
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)
text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))
screen.blit(text, (20, 20))
pygame.display.flip()
clock.tick(60)
pygame.quit()
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
게임 창에서 배우는 Python의 모든 레슨
직접 연습해 보세요: Pygame 플레이그라운드