简体   繁体   中英

Space Invaders: Loading Images

I'm trying to make Space Invaders as a project, I've watched videos on creating it and I have done quite a bit.

I've played around with it a lot, but there's always that one thing that goes wrong which messes up the entire thing.

This is my first post here, I'm not quite sure how to do this... let's see...

I keep facing this error, and it's not budging:

C:/Users/Dell/PycharmProjects/Tutorial(2)/main.py:198: DeprecationWarning: an integer is required (got type float).  Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
  pygame.draw.rect(window, (0, 255, 0), (
Traceback (most recent call last):
  File "C:/Users/Dell/PycharmProjects/Tutorial(2)/main.py", line 415, in <module>
    main_menu()
  File "C:/Users/Dell/PycharmProjects/Tutorial(2)/main.py", line 410, in main_menu
    main()
  File "C:/Users/Dell/PycharmProjects/Tutorial(2)/main.py", line 377, in main
    boss.shoot()
  File "C:/Users/Dell/PycharmProjects/Tutorial(2)/main.py", line 90, in shoot
    laser = Laser(self.x - 20, self.y, self.laser_img)
  File "C:/Users/Dell/PycharmProjects/Tutorial(2)/main.py", line 109, in __init__
    self.mask = pygame.mask.from_surface(self.img)
TypeError: argument 1 must be pygame.Surface, not None

Can anyone help me fix it? I'm not sure what to do here.

Look at this line here

            boss = Boss(random.randrange(340, 360), random.randrange(-700, -100))

This is how you are instantiating your Boss

Now look at how you defined the init of your Boss class

 def __init__(self, x, y, health=200):
        self.x = x
        self.y = y
        self.health = health
        self.ship_img = None
        self.laser_img = None
        self.lasers = []
        self.cool_down_counter = 0

Notice that self.laser_img = None .

Now notice the error you have:

    laser = Laser(self.x - 20, self.y, self.laser_img)

Your 3rd argument is None. Now look at the next part of your error:

        self.mask = pygame.mask.from_surface(self.img)

self.img is actually None that is why you are getting an error.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM