I have tried coding many ways Ii can think, but none of them which don't give me errors, also don't update my score. All I have is a "Score:0" in the upper right corner of the screen and it should change whenever a laser beam fired from my ship collides with an enemy ship. Here is my last try. In my classes.py file, in Ship class constructor I have initialized the score:

```
self.score = 0 

```

and set 2 staticmethods in the Ship class:

```
@staticmethod 
def set_score(score):
    for ship in Ship.List:
        ship.score = score
@staticmethod  
def get_score():
    for ship in Ship.List:
        return ship.score

```

which is a dumb way to point to my ship considering there is only one, but it's the only way I know and works without any scope errors. In processes.py file I have:

```
 for laser in classes.Ship_laser.List:
    if pygame.sprite.spritecollide(laser, classes.Enemy_ship.List, True):
        laser.destroy()

        classes.Ship.set_score += 50
        return classes.Ship.set_score()

```

and inside the classes.py file in GameScene class I put outside the while loop:

```
myriadProFont = pygame.font.SysFont('Myriad Pro', 30)

```

and inside the while loop:

```
show_score = myriadProFont.render('Score: %s' %Ship.get_score(), 1, (255,255,255),None)
screen.blit(show_score, (550,30))

```

All this is showing me is the score with the value 0(or with any value I put in the Ship class constructor at that line self.score = 0). I know the line

```
classes.Ship.set_score += 50

```

can't be right since set\_score is a function,not a variable, but after about 30 tries to combine these elements and nothing updates the score I just don't know what else to do.