Вызывающие функции 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).****(label, (100, 100)) return result
screen(640,480,name("donkey from shrek"))
2 ответа

это то, что происходит (если я правильно понимаю):

  • передать результат имени ("осел из шрека") на экран() [строка 18]
    • name() вызывается [строка 18]
      • name: создает метку [строка 14]
      • имя: экран вызовов [строка 15]
      • screen: создайте новый дисплей и верните его [строка 6-9]
      • name: **** label для возвращаемого отображения [строка 15]
      • верните "****ted" дисплей [строка 16]
  • блуждающий дисплей переходит на экран() [строка 18]
    • screen: не нужно отображать объект в "name" [строка 6-9]
    • screen: создает и возвращает пустой экран [строка 6-9]

Надеюсь, это поможет ;)


На первый взгляд, я считаю, что вы дважды вызываете экранную функцию и создаете два экрана.

Функция "имя" создает экран с меткой. Эта функция вызывается в последней строке вашего кода перед вызовом функции "screen".

Когда в конечном итоге функция "screen" вызывается (снова) в последней строке, это создаст новый экран без метки....

Также функция "экран" не использует аргумент "имя", который присваивается функции. Если вы хотите установить заголовок экрана, я хотел бы обратиться к http://www.pygame.org/docs/ref/display.html#pygame.display.set_caption

licensed under cc by-sa 3.0 with attribution.