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/