运行脚本时出现问题,获取错误:if event.type==pygame.QUIT:语法错误



所以我遵循本教程:https://www.youtube.com/watch?v=Vg83OtRkevE我已经完成了教程告诉我的一切,但当我运行它时,我仍然收到这个错误消息:

if event.type == pygame.QUIT:
syntax Error

(这是在回复中做出的(我的代码是:

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()

起初,这是一些其他语法错误,我必须修复,如果有人能帮忙,请做!我是玩pygame的新手,如果我的问题看起来很愚蠢,我很抱歉。

Python需要缩进才能知道每个部分的范围(例如if、while、for、function等(。以下是如何正确执行的全面指南:https://peps.python.org/pep-0008/.如果你的代码像你的问题一样缩进。这里有一个问题:

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

它必须按照缩进

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

最新更新