Menu

Post image 1
Post image 2
1 / 2
0

Pygame Snake, Pt. 6

DEV Community·David Newberry·30 days ago
#Fj2LyxLZ
Reading 0:00
15s threshold

Currently, there is a subtle but real flaw in the controls for the game. If the player presses two keys in quick succession, only the last one is registered -- one, or more, are simply dropped. You can see the effect easily if you lower the framerate to something extreme, e.g. 1 (i.e. 1 frame per second) by changing the clock.tick(20) line to clock.tick(1) . If you quickly press down and then right, only right will be registered. Thankfully, pygame makes it revlatively easy to fix this. Inside the while loop -- i.e., for each frame -- we want to see if there are arrow keydown events to consume. If so, we want to move a step in each direction pressed. If no keydown events have occured, the snake should continue in last direction it was sent. Above the for event... loop, add add a line to create an empty list: vels = [] Enter fullscreen mode Exit fullscreen mode Then, inside the following conditional, instead of setting val = ... , add each arrow direction vector to the list: vels += [ key_vel [ event .…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.

Read More