根据屏幕比例调整大小

匿名1

我有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 Game")
FPS = pygame.time.Clock()

red = (255,0,0)

screen = pygame.display.set_mode((1200,700), HWSURFACE|DOUBLEBUF|RESIZABLE)
add_screen = screen.copy()
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, (1200,700)), (0,0))
pygame.display.flip()


myFont = pygame.font.SysFont("monospace", 300)
label = myFont.render("Check 1", 40, (red))
add_screen.blit(pygame.transform.scale(label, (700, 500)), (0,0))

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)
            screen.blit(pygame.transform.scale(back_end_image_set, event.dict['size']), (0,0))
            pygame.display.flip()
except:
    raise

任何帮助将不胜感激。

拉比德76

首先存储表面的原始大小:

original_size = (1200,700)
screen = pygame.display.set_mode(original_size, HWSURFACE|DOUBLEBUF|RESIZABLE)

然后,您有2个选项。

选项1:

使用pygame.font文本并将其渲染到表面:

myFont = pygame.font.SysFont("monospace", 300)
label = myFont.render("Check 1", 40, (red))

通过新窗口大小和原始窗口大小及其与表面的比率来缩放文本blit表面:

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 = label.get_width() * new_size[0] // original_size[0]
    label_h = label.get_height() * new_size[1] // original_size[1]

    screen.blit(pygame.transform.scale(label, (label_w, label_h)), (0,0))
    pygame.display.flip()

选项2:

用途pygame.freetype

import pygame.freetype

myFont = pygame.freetype.SysFont('monospace', 30)

计算文本区域的缩放大小并将其直接呈现到调整大小的屏幕上。请注意,文本是按新窗口宽度和原始窗口宽度的比例缩放的。此实现保留了文本的宽度和高度的比例,并且不会拉伸或压缩文本:

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))

    myFont.render_to(screen, (0, 0), "Check 1", fgcolor=red, size = 300 * new_size[0] // original_size[0])
    pygame.display.flip()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据屏幕大小按比例调整文本大小

来自分类Dev

根据屏幕大小调整文本大小

来自分类Dev

根据屏幕大小调整文本大小

来自分类Dev

如何根据设备大小和比例调整UIImage的大小?

来自分类Dev

根据容器大小自动调整元素大小而不使用比例

来自分类Dev

Bootstrap根据屏幕大小自动调整

来自分类Dev

ImageView-根据Android屏幕调整大小

来自分类Dev

Google地图根据窗口调整大小设置不同的缩放比例

来自分类Dev

bg-image大小如何根据图片的比例调整?

来自分类Dev

iOS:UICollectionViewCell根据屏幕大小自动调整大小

来自分类Dev

Flutter:如何根据设备的屏幕大小调整文本大小

来自分类Dev

使用更少的CSS根据屏幕大小调整视频大小

来自分类Dev

根据屏幕大小自动快速调整应用大小

来自分类Dev

使锚定窗格可根据屏幕大小调整大小

来自分类Dev

如何根据屏幕大小调整php中的图像大小?

来自分类Dev

如何根据.kv文件中的屏幕动态调整文本大小

来自分类Dev

根据屏幕分辨率调整图像的大小

来自分类Dev

根据屏幕分辨率自动调整网页大小

来自分类Dev

如何根据屏幕尺寸调整网格图像的大小?

来自分类Dev

Jumbotron无法根据屏幕/浏览器大小进行调整

来自分类Dev

根据屏幕分辨率调整数据网格的大小

来自分类Dev

UWP 根据屏幕大小调整控件布局/位置

来自分类Dev

iOS如何根据实际图像比例调整图像大小并指定自定义大小?

来自分类Dev

iOS如何根据实际图像比例调整图像大小并指定自定义大小?

来自分类Dev

如何使网站(图像/表格)按比例调整大小以适合屏幕尺寸

来自分类Dev

调整PyGame屏幕的大小

来自分类Dev

调整VirtualBox屏幕的大小?

来自分类Dev

调整pictureBox的大小与Form的大小成比例

来自分类Dev

使超大屏幕根据屏幕尺寸自动调整大小(还添加滚动按钮)

Related 相关文章

  1. 1

    根据屏幕大小按比例调整文本大小

  2. 2

    根据屏幕大小调整文本大小

  3. 3

    根据屏幕大小调整文本大小

  4. 4

    如何根据设备大小和比例调整UIImage的大小?

  5. 5

    根据容器大小自动调整元素大小而不使用比例

  6. 6

    Bootstrap根据屏幕大小自动调整

  7. 7

    ImageView-根据Android屏幕调整大小

  8. 8

    Google地图根据窗口调整大小设置不同的缩放比例

  9. 9

    bg-image大小如何根据图片的比例调整?

  10. 10

    iOS:UICollectionViewCell根据屏幕大小自动调整大小

  11. 11

    Flutter:如何根据设备的屏幕大小调整文本大小

  12. 12

    使用更少的CSS根据屏幕大小调整视频大小

  13. 13

    根据屏幕大小自动快速调整应用大小

  14. 14

    使锚定窗格可根据屏幕大小调整大小

  15. 15

    如何根据屏幕大小调整php中的图像大小?

  16. 16

    如何根据.kv文件中的屏幕动态调整文本大小

  17. 17

    根据屏幕分辨率调整图像的大小

  18. 18

    根据屏幕分辨率自动调整网页大小

  19. 19

    如何根据屏幕尺寸调整网格图像的大小?

  20. 20

    Jumbotron无法根据屏幕/浏览器大小进行调整

  21. 21

    根据屏幕分辨率调整数据网格的大小

  22. 22

    UWP 根据屏幕大小调整控件布局/位置

  23. 23

    iOS如何根据实际图像比例调整图像大小并指定自定义大小?

  24. 24

    iOS如何根据实际图像比例调整图像大小并指定自定义大小?

  25. 25

    如何使网站(图像/表格)按比例调整大小以适合屏幕尺寸

  26. 26

    调整PyGame屏幕的大小

  27. 27

    调整VirtualBox屏幕的大小?

  28. 28

    调整pictureBox的大小与Form的大小成比例

  29. 29

    使超大屏幕根据屏幕尺寸自动调整大小(还添加滚动按钮)

热门标签

归档