[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Patch for 'stars.py' and 'moveit.py' pygame examples



On Sat, Jul 16, 2005 at 03:43:09PM +1000, Rene Dudfield wrote:
> Thanks!
> 
> Applied to cvs.
> 
Rene,

thanks for applying.

I too, tried changing the star coordinates to integers, but this has a
side-effect of restricting the possible trajectories of the stars. I get
a harsh vertical and horizontal 'cross' in the stars distribution.

Using round() as you do might be useful, but keeping the accumulated
position as a float (or fraction) is required.

Also, it looks more like the 'flying through space' screen-saver I
assume it is mimicking *with* the frame-rate limiter. Without, it's just
a fuzzy mess on my fastest machine.

But, it is only an example script, so I'll shut-up :-)

cheers,
John.


> On 7/16/05, John Popplewell <john@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> > Hi,
> > 
> > I was just trying PyGame 1.7.1 from CVS on my Linux laptop and came
> > across a couple of bugs in the supplied example scripts. Here is a
> > patch:
> > 
> > Index: moveit.py
> > ===================================================================
> > RCS file: /home/cvspsrv/cvsroot/games/pygame/examples/moveit.py,v
> > retrieving revision 1.2
> > diff -c -r1.2 moveit.py
> > *** moveit.py   5 Jan 2002 09:17:53 -0000       1.2
> > --- moveit.py   2 Jul 2005 01:32:50 -0000
> > ***************
> > *** 40,45 ****
> > --- 40,47 ----
> > 
> >       player = load_image('player1.gif')
> >       background = load_image('liquid.bmp')
> > +     background = pygame.transform.scale2x(background)
> > +     background = pygame.transform.scale2x(background)
> >       screen.blit(background, (0, 0))
> > 
> >       objects = []
> > 
> > This patch scales the background image so that it fills the window and
> > successfully overwrites the old sprite position. See the script
> > 'liquid.py' for details. The image 'liquid.bmp' was 'shrunk' a while
> > back, but 'moveit.py' wasn't updated.
> > 
> > 
> > Index: stars.py
> > ===================================================================
> > RCS file: /home/cvspsrv/cvsroot/games/pygame/examples/stars.py,v
> > retrieving revision 1.7
> > diff -c -r1.7 stars.py
> > *** stars.py    7 Jan 2002 17:09:59 -0000       1.7
> > --- stars.py    2 Jul 2005 01:32:50 -0000
> > ***************
> > *** 42,47 ****
> > --- 42,48 ----
> >   def draw_stars(surface, stars, color):
> >         "used to draw (and clear) the stars"
> >         for vel, pos in stars:
> > +               pos = (int(pos[0]), int(pos[1]))
> >                 surface.set_at(pos, color)
> > 
> > 
> > ***************
> > *** 62,67 ****
> > --- 63,69 ----
> >         #create our starfield
> >         random.seed()
> >         stars = initialize_stars()
> > +       clock = pygame.time.Clock()
> > 
> >         #initialize and prepare screen
> >         pygame.init()
> > ***************
> > *** 84,89 ****
> > --- 86,92 ----
> >                                 break
> >                         elif e.type == MOUSEBUTTONDOWN and e.button == 1:
> >                                 WINCENTER[:] = list(e.pos)
> > +               clock.tick(50)
> > 
> > I'm using Python 2.3.5 on Gentoo.
> > This fixes a warning:
> > 
> > stars.py:45: DeprecationWarning: integer argument expected, got float
> >   surface.set_at(pos, color)
> > 
> > generated for every star when it is drawn and erased and slows the
> > program down tremendously! The warning subsystem suppresses all but the
> > first warning, but they are still being generated.
> > 
> > I added the frame-rate regulation clock to make it slow enough to see
> > after the fix.
> > 
> > Good luck with the new release,
> > 
> > cheers,
> > John Popplewell.
> > 
> >
>