2012-02-05 3 views
0

Я выполняю задание с pyGame, очень простым, мы должны загружать изображение в окно, но оно не загружается! И IDLE не показывает никаких ошибок. Я пробовал относительные пути к моему изображению (room.png) и абсолютные пути (C: ... \ room.png), но ничего. Вот мой код.PyGame: pygame.image.load() ничего не показывает

import pygame, sys  #import pygame and system library 
from pygame import * #import all pygame sublibs 

pygame.init() 
screen = display.set_mode((385,384)) #set screen size 
display.set_caption("Blit example") 
         #this one gets the current working directory 
background_file_name = "room.png"   #import bg 
background_surface = pygame.image.load(background_file_name) #use bg 

while True: 
     for e in pygame.event.get(): 
       if e.type==QUIT:  #break the loop and quit 
         pygame.quit() 
         sys.exit() 
         break 


screen.fill((255,0,255))   #fill the screen with magenta 
screen.blit(background_surface, (0,0)) 
display.update() 

ответ

1

Ваш углубление перепутано.

Вы только начинаете рисовать после заявка завершена. Попробуйте поместить код чертежа в свой основной цикл.

+0

На самом деле, это код копируется из записей инструктора. Это сработало для него, это не работает для меня (хотя файлы находятся в правильном месте). Я вообще не знаю о программировании, это как будто я пытаюсь найти свой путь в темноте. – mechanicarts

+0

Тогда поймите код и исправьте отступ последнего блока. Это не сложно. Вам просто нужно получить деталь * painting * в части * ожидания. –

1

Поскольку вы сказали в комментарии, о котором не знали о программировании, вы, вероятно, не знаете, что отступы важны для python. Ваш цикл while работает непрерывно, ожидая выходного сигнала. Но отображение осуществляется только после этого ...

while True: 
    for e in pygame.event.get(): 
      if e.type==QUIT:  #break the loop and quit 
        pygame.quit() 
        sys.exit() 
        break 


    screen.fill((255,0,255))   #fill the screen with magenta 
    screen.blit(background_surface, (0,0)) 
    display.update() 

теперь отображение кода внутри цикла в то время как