Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Having problems running script getting error: if event.type == pygame.QUIT: syntax Error

So I’m following this tutorial:
https://www.youtube.com/watch?v=Vg83OtRkevE
and I’ve done everything the tutorial told me to but I’m still getting this error message when I run it:

if event.type == pygame.QUIT:

syntax Error

(this was made in repl.it)
my code is:

import sys

WIN_WIDTH = 800
WIN_HEIGHT = 600
TILESIZE = 32
FPS = 60



class Spritesheet:
  def __init__(self, file):
    self.sheet = pygame.image.load(file).convert()

    def get_sprite(self, x, y, width, height):
      sprite = pygame.Surface([width, height])
      sprite.blit(self.sheet, (0, 0), (x, y, width, height))
      return sprite

class Ground(pygame.sprite.sprite):
  def __init__(self, game, x, y):
    self.game = game
    self._layer  = 1
    self.groups = self.game.all_sprites
    pygame.sprite.Sprite.__init__(self, self.groups)

    self.x = x * TILESIZE
    self.y = y * TILESIZE
    self.width, self.height = TILESIZE, TILESIZE
    self.image = self.gane.terainsheet.get_sprite(0, 96, self.width, self.height)
    self.rect = self.image.get_rect()
    self.rect.x, self.rect.y = self.x, self.y
    

def build_map(self, tilemap):
  for i, row in enumerate(tilemp):
    for j, column in enumerate(row):
      Ground(self, j, i)

class Game:
  def __init__(self):
    self.screen = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT))
    self.clock = pygame.time.Clock()
    self.running = True
    self.terrainsheet = spritesheet(('terrain1.png'))

    def createTilemap(self, tilemap):
      build_map(self, tilemap)
      def new(self, tilemap):
        self.playing = True
        self.all_sprites = pygame.sprite.LayeredUpdates()
        self.createTilemap(tilemap)

        def events(self):

          for event in pygame.event.get():
            if eve nt.type == pygame.QUIT:
            self.playing = False
            self.running = False

  def update(self):
    self.all_sprites.update()

    def draw(self):
      self.screen.fill('black')
      self.all_sprites.draw(self.screen)
      self.clock.tick(FPS)

      pygame.display.update()

  def main(self):
    while self.playing:
      self.Events()
      self.updates()
      self.draw()
     
    TILEMAP = [
        '............................',
      '............................',
      '............................',
      '............................',
      '............................',
      '............................',
      '............................',
      '............................',
      '............................',
      '............................',
      '............................',
      '............................',
      '............................',
      '............................',
      '............................',
      '............................',
      
    ]
    game = game()
    game.new(TILEMAP)
    while game.running:
      game.main
      pygame.quit
      sys.exit()

At first it was some other syntax error I had to fix, If anyone is able to help please do!
I’m a newbie to pygame so sorry if my question seems stupid.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

Python needs indentation in order to know the scope of each section (eg. if, while, for, function, etc.). Here is comprehensive guide how to do it properly: https://peps.python.org/pep-0008/. If your code is indented as in your question. There is a problem here:

          for event in pygame.event.get():
            if event.type == pygame.QUIT:  # This If is empty
            self.playing = False # this
            self.running = False # and this does not belong to that If

it must be indented according:

          for event in pygame.event.get():
            if event.type == pygame.QUIT:
              self.playing = False
              self.running = False
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading