太多的缩进了



我想做一个小程序,让敌人朝屏幕左边跑去,你必须把他扔掉才能阻止他。我将"敌人"作为分散部件的子类,并将其添加到关卡类中。但它告诉我,我没有太多的缩进。下面是代码:

class Enemy(Scatter):
    intv = NumericProperty(0/10.)
    gravity = NumericProperty(0.01)
    velocity = NumericProperty()
    imgp = StringProperty('enemy.png')
    def __init__(self, **kwargs):
        super(Enemy, self).__init__(**kwargs)
        self.My_Clock = Clock#   declaring the clock for later usage
        self.My_Clock.schedule_interval(self.Update, self.intv)
    def Update(self, *args):
        self.x -= 1
        if self.y > 0:
            self.velocity += self.gravity
            self.y -= self.velocity
        else:
            if self.velocity > 0.5:
                print 'death'
class level(Widget):
    zicie = NumericProperty(10)# the variable containg the life of the player
    zloto = NumericProperty(0)
    e_killed = NumericProperty(0)
    intv1 = NumericProperty(2/1.)
    pu = BooleanProperty(True)
    def __init__(self, **kwargs):
        super(level, self).__init__(**kwargs)
        self.l_Clock = Clock
    def Update(self, *args):# this funktion generates enemys
        pass
        #obj = Root.ids.level
        #obj.add_widget(Enemy(pos=(500,0))) # the widget enemy is added here
Root = Builder.load_string('''
FloatLayout:
    level:
        Enemy:
            pos: 500,0

<Enemy>:
    Image:
        pos: root.pos
        source: 'enemy.png'
''')
FloatLayout:
    level:
        Enemy:

Widget名称必须以大写字母开头,因为kv用它来区分属性和Widget。在这种情况下,它可能认为level是一个属性,在这种情况下缩进确实是无效的(尽管正如其他人评论的那样,您应该复制和粘贴错误,以便于确认类似的事情)。

最新更新