Pygame freezes on startup

Question:

I’m using pygame to try and get better with python but it just doesn’t respond.
I don’t know why, as I have similar code that works just fine.

import pygame
import random
import time
width = 500
height = 500
snake = [[width / 2,height / 2]]
direction = "right"
pygame.init()
move_increment = 0.1
screen = pygame.display.set_mode((width,height))
running = True
pygame.display.set_caption(("Snake for Python"))
icon = pygame.image.load(("download.png"))
pygame.display.set_icon(icon)
def Keys():
    keys = pygame.key.get_pressed()
    if keys[pygame.K_w]:
       direction = "up"
       print("w pressed")
    if keys[pygame.K_s]:
        direction = "down"
        print("s pressed")
    if keys[pygame.K_d]:
       direction = "right"
       print("d pressed")
    if keys[pygame.K_a]:
      direction = "left"
      print("a pressed")
  
while running:
 for x in snake:
    pygame.draw.rect(screen, (255,255,255), [x[0], x[1], 15, 15])
    if direction == "up":
     x[1] -= move_increment
    if direction == "down":
     x[1] += move_increment
    if direction == "left":
      x[0] -= move_increment
    if direction == "right":
      x[0] += move_increment
pygame.draw.rect(screen,(0,0,0),[0,0,width,height])
pygame.display.flip()
Keys()
  
for event in pygame.event.get():
   if event.type == pygame.QUIT:
    running = False

No errors, no prompts stopping execution, this just makes NO SENSE.

Asked By: Leo

||

Answers:

pygame.draw.rect(screen,(0,0,0),[0,0,width,height])
pygame.display.flip()
Keys()
  
for event in pygame.event.get():
   if event.type == pygame.QUIT:
    running = False

This code needs to be indented more. It’s currently outside the while loop, and therefore never being run

Answered By: Leshawn Rice
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.