[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [pygame] Keyboard handling
Thanks a bunch. This is what I was looking for. While tinkering, I
figured something similar to this out, only I created Event types that
represented each key I wanted to look for, which in hind sight seems
really pointless :) Anyway, thank you very much, I greatly appreciate it.
Pete Shinners wrote:
>> Hey all, I'm writing a breakout clone in PyGame, and I'm trying
>> to implement acceleration for my paddle. I have a Paddle.Move()
>> function that continuously adds accel_rate to self.cur_accel, and then
>> moves the paddle self.cur_accel to the left or right. The problem is,
>> I want the cur_accel to be set back to 0 when the player lets go
>> of the key.. I couldn't find anything on 'key release' events, and
>> having a 'timeout' period for the key event seems nasty. Any suggestions?
>
>
> hello chris, it looks like you've already got a couple responses, but
> i'll just throw in one more here. here is a section of code from one
> of the projects i'm working with. in this game a spaceship will fly
> at turbo speed while the spacebar is down. here is what that chunk of
> code looks like.
>
>
> def handleevent(self, e):
> if e.type == QUIT:
> self.finish()
> return 1
> elif e.type == KEYDOWN:
> elif e.key == K_SPACE:
> self.player.cmd_turbo(1)
> return 1
> elif e.key == K_ESCAPE:
> self.finish()
> return 1
> elif e.type == KEYUP:
> key = e.key
> if key == K_SPACE:
> self.player.cmd_turbo(0)
> return 0
>
>
> if you want to base your movement off of the event queue, this can
> be an ideal way to do it. notice that this event handler code belongs
> in a special 'state' class i have, the code that calls this function
> looks like this.
>
> e = pygame.event.poll()
> if e.type:
> mystate.handleevent(e)
>
> note here i check if e.type is nonzero. the event.poll() function
> will return an event type "NOEVENT", which means there are no
> pending events.
>
> if you want to see an example of how to handle keyboard by just
> checking the current state each frame, see the aliens example.
____________________________________
pygame mailing list
pygame-users@seul.org
http://pygame.seul.org