특정 좌표에 텍스트를 배치하는 방법에 대한 요점을 고수했습니다 (크기 조정 가능한 창과 배경에 그림이 포함되어 있음). 내 코드는 다음과 같습니다.
import pygame
from pygame.locals import *
import numpy as np
import matplotlib.pyplot as plt
import argparse
import threading, os, sys, time
pygame.init()
pygame.display.set_caption("AI Battlehip Game")
original_size = (1200,700)
FPS = pygame.time.Clock()
red = (255,0,0)
screen = pygame.display.set_mode(original_size, HWSURFACE|DOUBLEBUF|RESIZABLE)
back_end_image_set = pygame.image.load(r'/Users/User1/Desktop/Project work/images/backgroundimage1.jpg')
screen.blit(pygame.transform.scale(back_end_image_set, original_size), (0,0))
pygame.display.flip()
myFont = pygame.font.SysFont('freesansbold.ttf', 60)
label = myFont.render('Check 1', 1, (red))
pos_W = (1200 - label.get_width())//2
pos_H = (700 - label.get_height())//2
FPS.tick(60)
try:
while True:
pygame.event.pump()
event = pygame.event.wait()
if event.type == QUIT:
pygame.display.quit()
elif event.type == VIDEORESIZE:
screen = pygame.display.set_mode(event.dict['size'], HWSURFACE|DOUBLEBUF|RESIZABLE)
new_size = event.dict['size']
screen.blit(pygame.transform.scale(back_end_image_set, new_size), (0,0))
label_W = pos_W * new_size[0] // original_size[0]
label_H = pos_H * new_size[1] // original_size[1]
screen.blit(pygame.transform.scale(label, (label_W, label_H)), (0,0))
pygame.display.flip()
except:
raise
어떤 도움을 주시면 감사하겠습니다. 대단히 감사합니다!
텍스트 표면 ( label
) 의 위치와 크기를 조정해야합니다 .
label_W = label.get_width() * new_size[0] // original_size[0]
label_H = label.get_height() * new_size[1] // original_size[1]
label_X = pos_W * new_size[0] // original_size[0]
label_Y = pos_H * new_size[1] // original_size[1]
screen.blit(pygame.transform.scale(label, (label_W, label_H)), (label_X, label_Y))
선형 크기를 조정하면 x 및 y 축을 따라 창 크기가 조정됩니다. x 및 y 축의 배율은 표면의 각 점 또는 벡터에 적용 할 수 있습니다. 직사각형의 위치는 크기와 동일한 비율로 변경됩니다.
scale_x, scale_y = (new_size[0] / original_size[0], new_size[1] / original_size[1])
label_size = (int(label.get_width() * scale_x), int(label.get_height() * scale_y))
label_pos = (int(pos_W * scale_x), int(pos_H * scale_y))
screen.blit(pygame.transform.scale(label, label_size), label_pos)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다