无法弄清楚Pygame应用程序中出了什么问题

时间:2016-10-11 23:42:13

标签: python pygame tr

我正在写这次反应测试。它应该显示文本,等待击键并开始试验,将得到的度量附加到文件中。但它只是显示文本和冻结。该死的。如果你能帮助我指出问题,我将非常感激

import pygame
import random 
import time

pygame.init()

red = (255, 0, 0)
light_sea_green = (32, 178, 172) 
white = (255, 255, 255)
black = (0, 0, 0)

height, width = pygame.display.Info().current_w,pygame.display.Info().current_h

try:
    screen = pygame.display.set_mode((height, width), pygame.FULLSCREEN)
except pygame.error:
    screen = pygame.display.set_mode((780, 1360), pygame.FULLSCREEN)
    print("display err")

screen.fill(white)
pygame.display.flip()
pygame.display.set_caption("TRTest")

data = open("data.txt", "r+")
sid = len([l for l in data.readlines()]) + 1

while True:
    start = False
fnt = pygame.font.Font(None, 28)
txtrn = fnt.render("TR, press return", 0, (0, 0, 0))                
screen.blit(txtrn, (((height/2) - (txtrn.get_rect().width/2)), ((width/2) - (txtrn.get_rect().height)/2)))  
pygame.display.flip()

while not start:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
        if event.type == pygame.KEYDOWN:
            start == True

while start == True:
    for x in range(3): #3 Trials
        screen.fill((255, 255, 255))
        pygame.draw.line(screen, (0, 0, 0), (height/2, width/2 - 10), (height/2, width/2 + 10), 2)    
        pygame.draw.line(screen, (0, 0, 0), (height/2 - 10, width/2), (height/2 + 10, width/2), 2)    
        pygame.display.flip()    
        pygame.time.delay(random.randint(2000, 8000))
        pygame.draw.circle(screen, red, (height/2, width/2), 80)
        pygame.display.flip()
        t0 = time.clock()
        pygame.event.clear()
        running = True
        while running:
            for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                    t1 = time.clock()
                    tr = (t1 - t0)
                    data.append(round(tr, 3))
                    running = False
                elif event.type == pygame.QUIT:
                    pygame.quit()

2 个答案:

答案 0 :(得分:1)

代码中需要=而不是==

if event.type == pygame.KEYDOWN:
     start == True # <--- need `=` instead of `==`

答案 1 :(得分:0)

while True:
    start = False

这是一个无限循环。