python - Does colliderect work with classes, if so then how do I use it? -


i having issue adding "colliderect" game. have class setting values objects, , 1 drawing items screen.

**edited ** throughout edits have updated code having issues with. have yet make of bel ow solutions work class. answers have been given helpful, still having same issues. collierect doesn't want work, when use pygame.sprite.sprite collisions sprite begs flashes when contacts sprite.rect, rect's movement doesn't reverse.

help on either of these issues appreciated, until things solved leave question open. error getting

if paddle1.render().colliderect(ball):

attributeerror: 'nonetype' object has no attribute 'colliderect'

error getting now

if paddle1.render().colliderect(ball):

attributeerror: 'object' object has no attribute 'colliderect'

i don't know how fix issue.

here's code ball

                #create class named sprite use paddles , ball.             class object():                 def __init__(self,x,y,width,height,color):             # set x value                      self.x = x             # set y value                      self.y = y             # set width of object                      self.width = width             # set height of object                      self.height = height             # set (default) color of object                      self.color = (255,255,255)                     #attirbute drawing sprite(s) screen                 def render(self):                     pygame.draw.rect(screen,self.color,(self.x,self.y,self.width,self.height))                     return self              #create sprites                    paddle1 = object(50,175,25,150,color[0])             paddle2 = object(650,175,25,150,color[1])             ball = object(300,250,25,25, color[2]) 

this code colliderect

            #commands ball collision                 if paddle1.render().colliderect(ball):                     if true:                         pass #do                 if paddle2.render().colliderect(ball):                     if true:                         pass #do             # --- drawing code should go here 

aside if statement, missing colliderect work?

your method render() wrote not return value (ok, returns none.)

were intending return rect @ end of method?

def render(self):      self.rect = pygame.draw.rect(screen,self.color,(self.x,self.y,self.width,self.height))      return self.rect 

then chain method calls want:

paddle2.render().colliderect(ball): 

...although need calculate , set ball's rect , pass it:

paddle2.render().colliderect(ball.rect): 

i haven't used pygame i'm helping little blindly, think have confusion on classes. sprite should derived pygame.sprites.sprite. specialize sprite kind of sprite want be, pygame's sprite implements of underlying logic.

here's example sprite implementation: http://www.101computing.net/creating-sprites-using-pygame/