0

我想要加载大量函数,当我调用屏幕函数上的每个函数时,它会在屏幕上显示我想要的东西。我在这个简单的程序上遇到了麻烦。当我写信时,我想在屏幕上显示文本。但它所做的只是显示屏幕。

import pygame
from pygame.locals import *

pygame.init()

def screen(width,height,name):
    screen = pygame.display.set_mode((600,600))
    screen=pygame.display.set_mode((width,height))
    return screen

def name(name=""):
    pygame.font.init()
    myfont = pygame.font.SysFont("monospace", 15)
    label = myfont.render("Some text!", 1, (255,255,0))
    result=screen(640,480,name).blit(label, (100, 100))
    return result

screen(640,480,name("donkey from shrek"))
4

2 回答 2

1

这就是发生的事情(如果我做对了):

  • 将 name("donkey from shrek") 的结果传递给 screen() [第 18 行]
    • name() 被调用 [第 18 行]
      • 名称:创建标签 [第 14 行]
      • 名称:调用屏幕 [第 15 行]
      • screen: 创建新的显示并将其返回 [第 6-9 行]
      • 名称:返回显示的 blit 标签 [第 15 行]
      • 返回“blitted”显示 [第 16 行]
  • blitted 显示被传递给 screen() [第 18 行]
    • screen:不关心“name”中的显示对象[第 6-9 行]
    • screen:创建并返回一个空白显示 [第 6-9 行]

希望有帮助;)

于 2013-10-16T15:41:30.757 回答
0

乍一看,我相信您调用了两次屏幕功能,从而创建了两个屏幕。

函数“name”创建一个带有标签的屏幕。在调用“screen”函数之前,在代码的最后一行调用此函数。

当最终在最后一行(再次)调用“屏幕”功能时,这将创建一个没有标签的新屏幕......。

此外,函数“screen”不使用赋予函数的参数“name”。如果你想设置屏幕的标题,那么我想参考http://www.pygame.org/docs/ref/display.html#pygame.display.set_caption

于 2013-10-16T15:17:06.230 回答