mspaintmaestro: > I'm curious, can you explain why they shouldn't be used at the same time?
Iterating over the event queue will pump events, which will process/check key state (as you mentioned). This may lead to small differences between what your game logic gets when checking get_pressed or the event queue. Consider the situation where game logic is changed while iterating over the event loop, then checking get_pressed() at some other time. You may have caught a keypress during the event queue, but get_pressed will say the key is/was not pressed. So, you cannot make the assumption that each moethod will return the same result over the lifetime of a frame. Hope I explained it well enough. https://github.com/pygame/pygame/blob/master/src/event.c#L832 chomwitt: Please refer to the SDL documentation which defines the behavior of `get_pressed`: It explicitly states: "Gets a snapshot of the current keyboard state" http://sdl.beuc.net/sdl.wiki/SDL_GetKeyState And in pygame, which is a wrapper around it: https://github.com/pygame/pygame/blob/8aeb2f72047218043b2353dae4ccb288eaa5d814/src/key.c#L74-L104 > The case of state's duration be only the smalled time granularity the system supports would be impractical . Maybe you'd never catch the key pressed Yes. The state returned from get_pressed is based on data from the event queue. If you want higher resolution of time, then use the event queue method and poll more often. > How long is that duration ? and could be set by the programmer? The duration depends on how often you are checking the event queue. For a typical program, that is 60 times a second, or about 17ms. If you want more precision, then you will need to poll the event queue more often. On Thu, Apr 5, 2018 at 6:41 AM, <apreka...@gmail.com> wrote: > > > Τη Πέμπτη, 5 Απριλίου 2018 - 2:10:55 μ.μ. UTC+3, ο χρήστης Greg Ewing > έγραψε: >> >> >> ........ >> It returns a map telling you which keys are being >> held down at the moment you call it. That's what it >> means by 'state'. >> >> -- >> Greg >> > > I understand the semantics i think. But the devil ise hidden in the > details. > The point that made my curious and littlie anxious for the unpredictable > behavior of such > an introductory tutorial is what we mean by 'moment' . key.get_pressed() > will be called in moments A and B , and will return > that button UP is pressed. So button UP was pressed down both moments A > and B. The case of state's duration be only the > smalled time granularity the system supports would be impractical . Maybe > you'd never catch the key pressed. So you keep > the state for some duration. How long is that duration ? and could be set > by the programmer? > > chomwitt >