我创建了一个pygame代码来模拟图灵模式。我想在模拟工作时添加滑块来更新变量,但它们根本不起作用。当我点击屏幕时,它会冻结并且没有响应。
pygame.init()
w_width = 600
w_height = 600
screen = pygame.display.set_mode([w_width, w_height])
ra = 3
ri = 5
wa = 1
wi = 0.2
screen.fill((128, 128, 128))
model = Model(rows,cols, ra, ri, wa, wi, 0.5)
model.drawGrid(screen, w_width, w_height)
slider_wa = Slider(screen, 40, 20, 50, 10, min=0, max=2, step=0.1)
output_wa = TextBox(screen, 5, 10, 25, 25, fontSize=15)
output_wa.disable()
slider_wi = Slider(screen, 140, 20, 50, 10, min=0, max=2, step=0.1)
output_wi = TextBox(screen, 105, 10, 25, 25, fontSize=15)
output_wi.disable()
slider_ra = Slider(screen, 250, 20, 50, 10, min=0, max=10, step=0.5)
output_ra = TextBox(screen, 215, 10, 25, 25, fontSize=15)
output_ra.disable()
slider_ri = Slider(screen, 360, 20, 50, 10, min=0, max=10, step=0.5)
output_ri = TextBox(screen, 325, 10, 25, 25, fontSize=15)
output_ri.disable()
ra = slider_ra.getValue()
ri = slider_ri.getValue()
wa = slider_wa.getValue()
wi = slider_wi.getValue()
running = True
time_delay = 100
timer_event = pygame.USEREVENT + 1
pygame.time.set_timer(timer_event, time_delay )
win = pygame.display.set_mode([w_width, w_height])
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False
if event.type == KEYDOWN:
if event.key == K_RIGHT:
model.update()
model.drawGrid(screen, w_width, w_height)
if event.type == timer_event:
model.update()
model.drawGrid(screen, w_width, w_height)
screen.fill((128, 128, 128))
output_wa.setText(slider_wa.getValue())
output_wi.setText(slider_wi.getValue())
output_ra.setText(slider_ra.getValue())
output_ri.setText(slider_ri.getValue())
pygame_widgets.update(event)
pygame.display.update()
pygame.quit()
我尝试了从pygame文档中获得的代码(
text
)它单独运行很好,但我无法将它集成到我的代码中。