강의노트 텍스트 모듈

강의노트 • 조회수 112 • 댓글 0 • 수정 2주 전  
  • 글자 쓰기
  • 텍스트 쓰기

폰트 모듈 함수

메소드 설명 메소드 설명
pygame.font.init 폰트 모듈 초기화 pygame.font.quit 폰트 모듈 해제
pygame.font.get_init 폰트 모듈이 초기화되면 참반환 pygame.font.get_default_font 기본 글꼴 반환
pygame.font.get_fonts 사용가능 글꼴 반환 pygame.font.match_font 특정 글꼴 찾기
pygame.font.SysFont 시스템 글꼴 객체 생성 pygame.font.Font 폰트 객체 생성
pygame.font.render 화면에 텍스트 그리기 pygame.font.Font_size 폰트 크기 설정
pygame.font.Font.set_underline 텍스트 밑줄 표시 여부 설정 pygame.font.Font.get_underline 텍스트에 밑줄이 표시되는지 여부 반환
pygame.font.Font.set_bold 텍스트를 굵게 표시 pygame.font.Font.get_bold 텍스트가 굵게 표시되는지 여부 확인
pygame.font.Font.set_italic 텍스트 기울임꼴로 표시 pygame.font.Font.get_italic 텍스트가 기울임 꼴인지 여부 확인
pygame.font.Font.get_linesize 줄간격 크기 반환 pygame.font.Font.get_height 글꼴 높이 반환
pygame.font.Font.get_ascent 글꼴 크기 늘림 pygame.font.Font.get_descent 글꼴 크기 줄임

텍스트 표시

텍스트를 표시하려면 다음의 7단계를 거쳐야 한다.

  1. 화면 객체 생성

    screen = pygame.display.set_mode((640,480))
    
  2. Font 객체 생성

    dispFont = pygame.font.SysFont('Cambria', 72)
    
  3. render()메소드를 사용하여 텍스트가 그려지는 표면 객체 생성

    dispText = dispFont.render('Text 표시',True,(0,0,255)) 
    
  4. get_rect()메소드를 사용하여 텍스트 표면 객체에 대한 rect객체 생성

    dispTextRect = dispText.get_rect( )
    
  5. center속성 값을 설정하여 rect객체의 위치 설정

    dispTextRect.center = (x위치, y위치)
    
  6. blit()메소드를 사용하여 텍스트 표면 객체를 표시

    screen.blit(dispTextRect,(x위치, y위치))
    
  7. display.update()메소드를 사용하여 게임 창에 표시.

    pygame.display.update()
    

예제

import pygame

pygame.init( )

screen_Width = 640
screen_Height = 480
screen = pygame.display.set_mode((screen_Width, screen_Height))

GREEN = ( 0, 255, 0)
clock= pygame.time.Clock()

running = True

dispFont = pygame.font.SysFont('Cambria', 72)

dispText = dispFont.render('텍스트 표시', True, (0, 128, 0), GREEN)

dispTextRect = dispText.get_rect( )

dispTextRect.center = (screen_Width // 2, screen_Height // 2)

while running:
    clock.tick(10)
    for event in pygame.event.get( ):
        if event.type == pygame.QUIT:
            running = False
    screen.fill((255, 255, 255))
    screen.blit(dispText, (screen_ Width //2 - dispText.get_width() // 2, screen_Height // 3 - dispText.get_height()// 2))
    pygame.display.update()
pygame.display.quit()

한글 가능 폰트

import pygame

pygame.init( )

screen_Width = 640
screen_Height = 480
screen = pygame.display.set_mode((screen_Width, screen_Height))

GREEN = ( 0, 255, 0)
clock= pygame.time.Clock()

running = True
fontType = pygame.font.get_fonts()
result = []
i = 0

f = open('result.txt','w',encoding='utf-8')

while i < len(fontType):
    try:
        dispFont = pygame.font.SysFont(fontType[i], 72)
        running = True
    except:
        running = False
        s = fontType[i]
        print(str(i) + f'{s}')
        i = i + 1
    while running:
        clock.tick(10)
        dispText = dispFont.render('텍스트 표시', True, (0, 128, 0), GREEN)
        dispTextRect = dispText.get_rect( )
        dispTextRect.center = (screen_Width // 2, screen_Height // 2)
        for event in pygame.event.get( ):
            if event.type == pygame.QUIT:
                running = False
        keys = pygame.key.get_pressed()
        if keys[pygame.K_LEFT]:
            result.append(f'{fontType[i]} : 가능')
            print(f'{fontType[i]} : 가능')
            running = False
            i = i + 1
        if keys[pygame.K_RIGHT]:
            print(f'{fontType[i]} : 불가능')
            running = False
            i = i + 1
        screen.fill((255, 255, 255))
        screen.blit(dispText, (screen_Width //2 - dispText.get_width() // 2, screen_Height // 3 - dispText.get_height()// 2))
        pygame.display.update()
for i in result:
    f.write(i+'\n')
f.close()
pygame.display.quit()
폰트 폰트 폰트 폰트
malgungothic malgungothicsemilight microsofthimalaya batang
batangche gungsuh gungsuhche gulim
gulimche dotum dotumche holomdl2assets
hcrdotum hcrdotumext hcrbatang hancomgothic
hancomgothicregular hansantteutdotumregular hansantteutdotum 한컴말랑말랑
한컴말랑말랑regular 한컴훈민정음세로쓰기 amir headliner
yetr magicr moeumtr expom
hygraphicmedium hygungsobold hygothicextra hymyeongjoextra
hyheadlinemedium hygothicmedium hypmokgakbold hysinmyeongjomedium
hyshortsamulmedium hypostlight hypostmedium newgulim
pyunjir 나눔바른고딕
이전 글
마지막 글입니다.
댓글
댓글로 소통하세요.