Need Help in Python Variable updation (Pygame module) -
i trying increase speed variable in pygame code. run piece of code speed remain 0.1 (if press key) , 0 (else case). unable debug this. in appreciated.
import pygame speed = 0 screen = pygame.display.set_mode((400,400),0,32) pygame.display.update() clock = pygame.time.clock() while true: event in pygame.event.get(): if event.type == pygame.quit: break if event.type == pygame.keydown: if event.key == pygame.k_up: if speed < 8 : speed+=0.1 if event.type == pygame.keyup: if event.key == pygame.k_up: if speed > 0 : speed+= -0.1 pygame.display.update() print(speed) clock.tick(60) pygame.quit() quit()
you confusing event keyup key. event keyup occurs when key (any key) released. event keydown occurs when key pressed down.
in code, means when key pressed down, speed set 0.1, , when key release, speed set 0.0.
if want speed keep increasing, , decreasing when key released, should use timer, so:
import pygame speed = 0 screen = pygame.display.set_mode((400,400),0,32) pygame.display.update() clock = pygame.time.clock() pygame.time.set_timer(pygame.userevent+1, 20) while true: event in pygame.event.get(): if event.type == pygame.quit: break if event.type == pygame.userevent+1: if pygame.key.get_pressed()[pygame.k_up]: if speed < 8 : speed+=0.1 else: if speed > 0.1: speed+= -0.1 else: speed = 0.0 pygame.display.update() print(speed) clock.tick(60) pygame.quit() quit() adjust delay in set_timer suit taste. also, note addition reset speed zero. float operations not exact, repeated adding , substracting can lead 'zero' negative.
Comments
Post a Comment