我看不出这里有什么问题

-1 投票
2 回答
1204 浏览
提问于 2025-04-17 07:05

这是我看了几个小时的代码。我觉得可能是Lion系统上的一个Python bug。我使用的是Python 2.7。

import os, pygame
from pygame.locals import *
import spritesheet
import sound
from map import Level
level = Level()
level.loadFile("level.map")
pygame.init()
screen = pygame.display.set_mode((640, 480))
background = level.render(spritesheet.spritesheet("spritesheet.bmp"))
pygame.display.set_caption('Game')
character=spritesheet.spritesheet("spritesheet.bmp").image_at(pygame.rect.Rect(64, 64, 32, 32), colorkey = (255, 255, 255))
#Create The Backgound
background.blit(character, (304, 224))
screen.blit(background, (0, 0))
clock = pygame.time.Clock()
level.setTile(1, 1, "3")
pygame.display.flip()
xoffset=0
yoffset=0

while True:
    background = level.render(spritesheet.spritesheet("spritesheet.bmp"))
    background.blit(character, (304, 224))
    screen.blit(background, (0+xoffset, 0+yoffset))
    pygame.display.flip()
    for event in pygame.event.get():
        if event.type==QUIT:
            exit()
        elif event.type == KEYDOWN:
            if event.key == K_w:
                yoffset-=5
            if event.key == s:
                yoffset+=5

它返回了这个结果:

File "main.py", line 30
   elif event.type == KEYDOWN:
                          ^
IndentationError: unindent does not match any outer indentation level

我找不到任何错误。

2 个回答

1

你的代码看起来是对的。可以通过运行 $ python -t yourcode.py 来检查一下,确保空格和制表符没有混在一起。这个命令会开启一个检查工具,帮你找出问题。

5

确保你在缩进时没有混用制表符和空格。你的编辑器可能认为一个制表符的宽度是4个空格,而Python解释器可能认为是其他值。如果你有些行是用空格缩进的,有些行是用制表符缩进的,编辑器看起来是对齐的,但Python解释器可能会觉得不对齐。

撰写回答