当前位置: 首页 > 知识库问答 >
问题:

皮加梅。如何调整曲面大小并使所有对象与新窗口大小成比例?

公冶峰
2023-03-14

如果我设置一个pyplay窗口可调整大小,然后单击并拖动窗口的边框,窗口会变得更大,但表面上没有任何污点会变得更大。(这是可以理解的)我将如何使它,以便当我调整窗口的大小时,所有枯萎的对象都用它调整大小并正确填充窗口?

例如:假设我有一个200 x 200的窗口,我在window_width/2和window_height/2点点了一个按钮。按钮将在窗口的中心100×100。现在,如果我将窗口大小调整为300 x 300,按钮将保持在100 x 100而不是150 x 150。

我试着乱搞pyplay。urface.get_width等,但运气不好。基本上,我试图调整一个程序的窗口大小,让所有的blight图像保持相称。

共有3个答案

潘俊楚
2023-03-14

最近与pygame2.0你可以使用SCALED标志

吴腾
2023-03-14

因此,如果没有gui初始化(pyplay init和setmode comands),在其中你有现有的pyplay事件get()(你只允许一次(或者只是在pygame.event.get中输入inkey(VIDEORESIZE):(如果你想是冗余的))(请注意,您只能使用"for inkey inpygame.event.get(VIDEORESIZE):"每次循环一次,因为它实际上是一个堆栈,当你读取事件列表时,它会解压,所以你应该真正使用"for inkey inpygame.event.get():'' 并把你所有的密钥识别声明后,这一次发生的"为inkey在pygame.event.get ():'':

for inkey in pygame.event.get(VIDEORESIZE)
    if inkey.type == pygame.VIDEORESIZE:
        winwidth,winhight  = inkey.size  # or event.w, event.h
        Window1copy = Window1.copy()# make copy of existing window
        Window1=pygame.display.set_mode((winwidth,winhight),pygame.RESIZABLE) 
        Window1.blit(Window1copy, (0, 0))
        pygame.display.update()
沈龙光
2023-03-14

不要直接在屏幕上画画,而是在另一个表面上。然后将另一个表面缩放到屏幕的大小,并在屏幕上闪烁。

下面是一个简单的例子:

import pygame
from pygame.locals import *

def main():
    pygame.init()
    screen = pygame.display.set_mode((200, 200),HWSURFACE|DOUBLEBUF|RESIZABLE)
    fake_screen = screen.copy()
    pic = pygame.surface.Surface((50, 50))
    pic.fill((255, 100, 200))

    while True:
        for event in pygame.event.get():
            if event.type == QUIT: 
                pygame.display.quit()
            elif event.type == VIDEORESIZE:
                screen = pygame.display.set_mode(event.size, HWSURFACE|DOUBLEBUF|RESIZABLE)

        fake_screen.fill('black')
        fake_screen.blit(pic, (100, 100))
        screen.blit(pygame.transform.scale(fake_screen, screen.get_rect().size), (0, 0))
        pygame.display.flip()
    
main()    
 类似资料:
  • 窗口大小,我们可以非常方便的使用width、height调整,但是如何知道 width和height是一个问题? 在 Window 操作系统中,假如我们想要缩放,我们通常会把鼠标移动到窗口的右边栏,和底部边栏,以及右下边栏。 而且在不同的边栏,鼠标呈现的样式也是不一样的。当我们在右边栏的时候我们可以通过cursor: e-resize;模拟鼠标样式。 在底部边栏我们可以通过cursor: s-re

  • #include <stdio.h> void fun1(void) { int i = 0; i++; i = i * 2; printf("%d\n", i); } void fun2(void) { int j = 0; fun1(); j++; j = j

  • 我正在尝试构建一个包含6个窗格(作为父级添加到GridPane布局中)的简单Java项目。我必须在开始时设置窗口大小,并通过参考根布局的宽度和高度,设法将它们均匀地拆分。 但我想要他们调整大小,因为我改变了窗口的大小(使用鼠标,现在他们得到固定的大小)。 下面是我的代码:

  • 问题内容: 我有以下JQuery代码: 唯一的问题是,这仅在首次加载浏览器时有效,我是否还希望在调整窗口大小时进行检查? 有任何想法吗? 问题答案: 这是一个使用jQuery,javascript和css处理调整大小事件的示例。 (如果您只是通过调整大小来设置样式(媒体查询),最好的方法是CSS) [ CSS javascript jQuery 如何停止调整大小的代码执行如此频繁! 这是绑定到调整

  • 我有下面的代码,它设置了一个特定大小的窗口。它还从外部URL加载图像。

  • 问题内容: 我一直试图(徒劳地)建立一个页面,当我更改窗口大小时,其元素将重新调整大小。我可以在CSS中使用它来处理图像,但是没有问题,但是我似乎无法在文本上完成相同的操作,而且我不确定在CSS中是否有可能。而且我似乎找不到能完成此任务的jQuery脚本。 当用户调整窗口大小时,我实质上希望页面能够动态流畅地缩放,而无需用户调用页面缩放。通过css在我的img div上这可以正常工作,但对于文本则