http://qs1969.pair.com?node_id=164145


in reply to Sprite animation with SDL_perl

Well this won't affect speed much but it removed duplicate code and increases readability.

UPDATE: my is expensive. Move it out of (important) tight loops.

my($key, $d); while(1) { #Does this really need to be called each round? #(no dox), if so move into until $event->pump(); until ($event->poll != 0) { select(undef,undef,undef, 0.01); } #micr +osleep $key = $event->key_sym(); $d = 0; $d = 1 if $event->type == SDL_KEYDOWN; $xplus = $d if $key eq SDLK_RIGHT; $xminus = $d if $key eq SDLK_LEFT; $yminus = $d if $key eq SDLK_UP; $yplus = $d if $key eq SDLK_DOWN; $fire = $d if $key eq SDLK_SPACE; exit if $key eq SDLK_ESCAPE; }

--
perl -pew "s/\b;([mnst])/'$1/g"

Replies are listed 'Best First'.
Re: Re: Sprite animation with SDL_perl
by Mirage (Sexton) on May 06, 2002 at 19:09 UTC
    There's a little mistake in your code, somehow(don't know really what poll does) you have to keep the if statement, or else repeated movements don't work.
      Well I beg to differ about it being a bug in my code ;-) It's more an issue of the library. Though there really oughtn't be any difference between how the two run. It might actually be the pump, did you try moving it into the until loop as the comment suggested might be required?

      --
      perl -pew "s/\b;([mnst])/'$1/g"