Hey Jake, You're putting your 'self.player.fire()' inside the 'for' block that's processing your events.
Take your method #2 and put it outside of the 'for' block. # code: events = pygame.event.get() for event in events: # 1) this block doesn't seem to work right unless moving mouse: (b1,b2,b3) = pygame.mouse.get_pressed() if b1: self.player.fire() print 'down' if event.type == MOUSEMOTION: pass elif event.type == MOUSEBUTTONDOWN: self.mouse.down = True elif event.type == MOUSEBUTTONUP: self.mouse.down = False #else, tried: 2) if self.mouse.down:# or True: self.player.fire() print 'down -Sean p.s. is it called a for loop? for block? eh On Sat, Jan 10, 2009 at 7:47 PM, Jake b <ninmonk...@gmail.com> wrote: > I want to do a simple: > > if LeftMouseDown(): fire() > > But it is failing. Right now both ways I try, it only says the button is > down if the mouse is moving. If I stay at the same x,y coord, it says the > button not pressed(but it is). > > # code: > events = pygame.event.get() > for event in events: > > # 1) this block doesn't seem to work right unless moving mouse: > (b1,b2,b3) = pygame.mouse.get_pressed() > if b1: > self.player.fire() > print 'down' > > #else, tried: 2) > if self.mouse.down:# or True: > self.player.fire() > print 'down' > > if event.type == MOUSEMOTION: pass > elif event.type == MOUSEBUTTONDOWN: self.mouse.down = True > elif event.type == MOUSEBUTTONUP: self.mouse.down = False > > > I'm surprised at method #2 failing, since I never change the value of > mouse.down anywhere else in the code, except those two lines above. > -- > Jake >