2015-06-05 4 views
0

Мой текущий код ниже, я хочу, чтобы это произошло после нажатия кнопки. Мне бы хотелось, чтобы он переместился на пустую страницу с «Hello», напечатанной посередине. Код ниже:Как создать новое окно в pygame?

#!/usr/local/bin/python3.4 
import pygame, sys 
from pygame.locals import * 
windowHeight = 600 
windowWidth = 900 

def main(): 
    pygame.init() 
    screen = pygame.display.set_mode((windowWidth, windowHeight)) 
    pygame.display.set_caption('Test') 
    background = pygame.image.load('background.jpg') 
    screen.blit(background, (0,0)) 
    face = pygame.image.load('text.gif') 
    b = screen.blit(face, (300, 300)) 

    while 1: 
     for event in pygame.event.get(): 
      if event.type == QUIT: 
       pygame.quit() 
       sys.exit() 
      if event.type == pygame.MOUSEMOTION: 
       x, y = event.pos 
       if b.collidepoint(x, y): 
        face = pygame.image.load('background.jpg') 
        b = screen.blit(face, (300, 300)) 
       else: 
        face = face = pygame.image.load('text.gif') 
        b = screen.blit(face, (300, 300)) 
      if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: 
       x, y = event.pos 
       if b.collidepoint(x, y): 
        print("button has been clicked") 

     pygame.display.update() 

if __name__ == '__main__': 
    main() 
+0

Я не уверен, что вы хотите здесь сделать, цикл 'while' будет работать до' main() 'и вызывать NameError-s, потому что у вас еще нет определенного экрана. Если вы хотите просто создать экран, у вас есть правильная идея, просто включите цикл 'while' в' main'. Если вы хотите сделать несколько экранов, вы не можете в pygame [Source] (http://stackoverflow.com/questions/7376479/creating-multiple-screens-in-pygame) – Matthew

ответ

1

Вы можете создать новый класс для примера HelloWorld с меткой: «Привет мир» и создать функцию, где вы lauching класса HelloWorld. Например (Python 2.7):

if __name__ == "__main__": 
    def _creator():   
     screen2 = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT),0,32) 
     hello = HelloWorld(screen2) 
     hello.run() 
    MENU_ITEMS = ("Welcome", "Exit") 
    SCREEN = pygame.display.set_mode((800, 600), 0, 32) 
    FUNCS = {"Welcome": _creator, "Exit": sys.exit} 
    GM = Main(SCREEN, FUNCS.keys(), FUNCS) 
    GM.run() 

При нажатии кнопки "Добро пожаловать" запуска класса HelloWorld.

Смежные вопросы