Как создать стартовый экран в Python?Где я могу разместить этот блок кода в цикле «В цикле»? - PullRequest
0 голосов
/ 30 мая 2019

Я работаю над финальным проектом для моего класса Python. Я делаю игру, используя библиотеку Pygame. Я хотел бы создать начальный экран, на котором пользователь может либо щелкнуть, чтобы начать, либо перейти в «магазин», где он может делать внутриигровые покупки. Однако я не знаю, как это структурировать. Я создал магазин, но я не знаю, где его разместить. Я помещаю это в цикл времени? Это то, что я сделал до сих пор ...

Должен ли я сделать нажатие кнопки мыши для инициализации? Куда мне поместить следующий код, если цвет == красный? (Это цвет кнопки «магазин») ... прямо сейчас, когда я запускаю программу, она сразу же попадает в игру, потому что нигде не нажимали.

while playing:
    num_spikes = []
    num_walls  = []
    keys = pygame.key.get_pressed()
    store = Button(600, 500, display)
    store.paint_button()  
    pygame.display.flip()    
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            carryOn = False

        if event.type == pygame.MOUSEBUTTONDOWN:
            xpos, ypos = event.pos
            color = display.get_at((xpos, ypos))[:3]

            if color == red:

                display.fill((0,0,0))
                pygame.draw.rect(display, blue, [100, 100, 800, 500], 0)
                pygame.draw.rect(display, white, [150, 150, 350, 350], 0)
                pygame.draw.rect(display, white, [375, 150, 575, 350], 0)
                display.blit(pygame.image.load("spike.png"), (160, 160))
                display.blit(pygame.image.load("brick.png"), (385, 160))
                text_input_spikes = pygame_textinput.TextInput()
                text_input_spikes.update(pygame.event.get())
                display.blit(text_input_spikes.get_surface(), (120,160))
                pygame.display.update()

        display.fill(white)



        if keys[pygame.K_LEFT]:
            s1.moveLeft(15)

        if keys[pygame.K_RIGHT]:
            s1.moveRight(15)

        if keys[pygame.K_UP]:
            s1.moveUp(15)

        if keys[pygame.K_DOWN]:
            s1.moveDown(15)

        if keys[pygame.K_ESCAPE]:
            exit()

        if m1.rect.y > 600:
            m1.changeSpeed(random.randint(50,100))
            m1.repaint(random.choice(colorList))
            m1.rect.y = -200

        crashes = pygame.sprite.spritecollide(s1, monsters, False)

        for crash in crashes:
            carryOn=False
            exit()
        m1.draw(display)
        s1.draw(display)        
        m1.update(s1)
        s1.update()                
        pygame.display.update() 

        pygame.display.flip()

 pygame.quit()
...