Jun-09-2021, 02:57 PM
(This post was last modified: Jun-09-2021, 02:57 PM by paulmills3.)
Getting an AttributeError(AttributeError: 'builtin_function_or_method' object has no attribute 'get_rect') after I added code to switch Sprite Animations when arrow keys are clicked.
Wondering what I need to change?
Below is my Sprite1 Class and the relevant code from the main file.
(PyGame)
Sprite1 Class:
------------------------------------------------------
Relevant Bits from Main File:
----------------------------------------------------------
Wondering what I need to change?
Below is my Sprite1 Class and the relevant code from the main file.
(PyGame)
Sprite1 Class:
------------------------------------------------------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import pygame class Sprite1(pygame.sprite.Sprite): def __init__( self ): super ().__init__() self .faceUp = True self .faceDown = False self .faceLeft = False self .faceRight = False self .image = pygame.image.load( 'player.png' ).convert_alpha self .rect = self .image.get_rect() def facing( self ): if self .faceUp = = True : self .image = pygame.image.load( 'player.png' ).convert_alpha self .rect = self .image.get_rect() elif self .faceDown = = True : self .image = pygame.image.load( 'playerDown.png' ).convert_alpha self .rect = self .image.get_rect() elif self .faceLeft = = True : self .image = pygame.image.load( 'playerLeft.png' ).convert_alpha self .rect = self .image.get_rect() elif self .faceRight = = True : self .image = pygame.image.load( 'playerRight.png' ).convert_alpha self .rect = self .image.get_rect() |
----------------------------------------------------------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
import pygame from sprite1 import Sprite1 pygame.init() #game Window screen_width = 800 screen_height = 400 screen = pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption( 'Warrior Quest' ) #setup player player = Sprite1() player.rect.x = 400 player.rect.y = 380 #game loop running running = True while running: draw_bg() if main_menu = = True : if start_button.draw(): main_menu = False if cancel_button.draw(): running = False else : player.draw(screen) keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and player.rect.x> 5 : player.faceLeft = True player.facing() player.rect.x - = 5 if keys[pygame.K_RIGHT] and player.rect.x< 790 : player.faceRight = True player.facing() player.rect.x + = 5 if keys[pygame.K_UP] and player.rect.y> 10 : player.faceUp = True player.facing() player.rect.y - = 5 if keys[pygame.K_DOWN] and player.rect.y< 395 : player.faceDown = True player.facing() player.rect.y + = 5 for event in pygame.event.get(): if event. type = = pygame.QUIT: running = False pygame.display.update() pygame.quit() |