Python 如何将文本放置在特定位置?
关于如何将文本放置在特定坐标(包括可调整大小的窗口和背景图片)上的问题,我坚持己见。这是我的密码:Python 如何将文本放置在特定位置?,python,pygame,Python,Pygame,关于如何将文本放置在特定坐标(包括可调整大小的窗口和背景图片)上的问题,我坚持己见。这是我的密码: 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 Gam
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\u W=label.get\u width()*新的\u大小[0]//原始的\u大小[0]
label\u H=label.get\u height()*新的\u大小[1]//原始的\u大小[1]
label\u X=pos\u W*新大小[0]//原始大小[0]
label_Y=pos_H*新尺寸[1]//原始尺寸[1]
blit(pygame.transform.scale(标签,(标签W,标签H)),(标签X,标签Y))
请注意,调整线性大小将沿x轴和y轴缩放窗口。x轴和y轴的比例因子可应用于曲面上的每个点或向量。矩形的位置以与其大小相同的比例变化:
scale\u x,scale\u y=(新大小[0]/原始大小[0],新大小[1]/原始大小[1])
label_size=(int(label.get_width()*scale_x),int(label.get_height()*scale_y))
标签位置=(int(位置W*刻度x),int(位置H*刻度y))
screen.blit(pygame.transform.scale(标签、标签大小)、标签位置)