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 <[email protected]> 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
>