How do you make static methods in python? With MakeCode Arcade

    brickInstances = []

    def __init__(self, x, y, hitPoints: number):
        picture
        if hitPoints == 1:
            picture = assets.image("""brick""")
        elif hitPoints == 2:
            picture = assets.image("""brick0""")
        elif hitPoints == 3:
            picture = assets.image("""brick1""")
        elif hitPoints == 4:
            picture = assets.image("""brick2""")
        self._brick = sprites.create(picture, SpriteKind.enemy)
        self._brick.set_position(x,y)
        self._brick.scale = 0.8
        #below line is from an extension
        sprites.set_data_number(self._brick, "identifier", len(Brick.brickInstances))
        Brick.brickInstances.append(self)
        self.hitPoints = hitPoints

    def __getInstance(self, index):
        return Brick.brickInstances[index]


    def Hit(self):
        if self.hitPoints > 1:
            self.hitPoints -= 1
            info.change_score_by(100)
        else:
            # drop power up
            Brick.brickInstances.remove_at(sprites.read_data_number(self._brick, "identifier"))
            info.change_score_by(1000)

my entire class just in case I made more mistakes or am doing “bad practice”.
Im trying to recreate Arkanoid in MakeCode and im using a class to manage the bricks… i wanted to store each instance of brick to a list that i can access later when overlapped with ball (i have an extension which should help know what index to look for) But i cant use my method getInstance because its not static.

below is how I call that method def on_overlap_balls_bricks(ball, brick): brickInstance = Brick.__getInstance(sprites.read_data_number(brick, "indentifier")) brickInstance.Hit()

2 Likes