2015-03-07 3 views
-1

Я понятия не имею, почему при нажатии кнопки он просто не переходит к следующей функции. Он возвращается к другому, это действительно странно и раздражает. Он должен перейти к функции whattodo, но в течение полутора секунд он переходит к другому. Кто-нибудь знает, почему?Weird critching out Pygame Python images

#!/usr/bin/python 
import pygame 
pygame.init() 
screen = pygame.display.set_mode((1400,700)) 
pygame.display.set_caption("Anti-Docter") 
titlescreen = pygame.image.load('titleframe.bmp') 
boxinfo = pygame.image.load('boxinfo.bmp') 
black = (0,0,0) 
white = (255,255,255) 
randommommycolor = (255,139,12) 
Brown = (102,51,0) 
Lighter_Brown = (120,59,5) 
def mts(text, textcolor, x, y, fs): 
    font = pygame.font.Font(None,fs) 
    text = font.render(text, True, textcolor) 
    screen.blit(text, [x,y]) 
def buttonPlay(x,y,w,h,ic,ac): 
    mouse = pygame.mouse.get_pos() 
    click = pygame.mouse.get_pressed() 

    if x+w > mouse[0] > x and y+h > mouse[1] > y: 
     pygame.draw.rect(screen, ac,(x,y,w,h)) 

     if click[0] == 1: 
      whattodo() 
    else: 
     pygame.draw.rect(screen, ic,(x,y,w,h)) 
def whattodo(): 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      pygame.quit() 
      quit() 
    screen.blit(boxinfo, (0,0)) 
    pygame.display.update() 

while True: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      pygame.quit() 
      quit() 
    screen.blit(titlescreen, (0,0)) 
    buttonPlay(580, 350, 200, 90, Brown, Lighter_Brown) 
    mts("Play", black, 620, 365, 80) 
    pygame.display.update() 

ответ

0

Каждый раз, когда ваш основной цикл повторяется, он вызывает кнопку buttonPlay. Внутри «whattodo» нет ничего, что бы изменило это поведение, поэтому «whattodo» запускается один раз, а затем поток управления возвращается к основному циклу, который просто повторяет «buttonPlay».