调用函数python(pygame)

时间:2013-10-16 14:43:29

标签: python pygame

我想要拥有一大堆功能,当我在屏幕上调用每个功能时,它会在屏幕上显示我想要的内容。我在这个简单的程序中遇到了麻烦。我想写信时我想在屏幕上显示文字。但它所做的只是显示屏幕。

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

2 个答案:

答案 0 :(得分:1)

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

  • 将名称(“驴子从史莱克”中)的结果传递给screen()[第18行]
    • name()被调用[第18行]
      • name:创建标签[第14行]
      • name:calls screen [line 15]
      • 屏幕:创建新显示并返回[第6-9行]
      • name:返回显示的blit标签[第15行]
      • 返回“blitted”显示[第16行]
  • blitted显示传递给screen()[第18行]
    • screen:不关心“name”[第6-9行]
    • 中的显示对象
    • screen:创建并返回空白显示[第6-9行]

希望有所帮助;)

答案 1 :(得分:0)

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

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

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

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