[Tutor] Type error when doing Pygame
Cravan
savageapple850 at gmail.com
Sat Sep 28 10:20:10 EDT 2019
Dear Matt,
Thanks for your help! It works now (
Cravan
On 28/9/19, 10:18 PM, "Tutor on behalf of Mats Wichmann" <tutor-bounces+savageapple850=gmail.com at python.org on behalf of mats at wichmann.us> wrote:
On 9/28/19 5:53 AM, Cravan wrote:
> Dear Alan and Cameron,
> Thank you for your input. However, after removing the first "screen" argument, I receive another error:
> ###################
> Traceback (most recent call last):
> File "final_project.py", line 134, in <module>
> g.run()
> File "final_project.py", line 37, in run
> self.draw()
> File "final_project.py", line 64, in draw
> self.food_food(5, 5, self.food_bar)
> File "final_project.py", line 50, in food_food
> pygame.draw.rect(self, GREEN, fill_rect)
> TypeError: argument 1 must be pygame.Surface, not Game
>
> I apologise if this seems like a really silly question, but I don’t really code much and am not really proficient in coding. May I know how to rectify this?
It's not silly, but you do figure out how Pygame's methods need to be
called. Clipped from their docs:
pygame.draw.rect()
draw a rectangle
rect(surface, color, rect) -> Rect
rect(surface, color, rect, width=0) -> Rect
Draws a rectangle on the given surface.
Parameters:
surface (Surface) -- surface to draw on
that makes sense... you need something to draw on.
you've passed it "self", which is a Game instance, and it doesn't know
what to do with that. You need to pass it a pygame.Surface instance, as
the exception message says. Presumably that would be something that has
been previously set up, then stored as an attribute in "self" so that
you can access it as needed. That has happened in your initialization
method, where you create a Surface by calling pygame.display.set_mode()
and store the result in self.screen. So almost certainly your call to
draw_rect should be passing self.screen as the first aregument, rather
than self.
Does that make sense?
_______________________________________________
Tutor maillist - Tutor at python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor
More information about the Tutor
mailing list