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

Re: [pygame] Working with maps



Well, a square sprite with the image of the country in the middle. You'd need to store an offset to display the sprite as part of a world map I guess.

On 18/05/2010 15:44, Miguel Bejar wrote:
How would you make each country a sprite when they are all irregularly
shaped? All the responses are great.
-Miguel

On Tue, May 18, 2010 at 10:27 AM, Kenny Meyer <knny.myer@xxxxxxxxx
<mailto:knny.myer@xxxxxxxxx>> wrote:

    Timothy Baldock (tb@xxxxxxxxxxxxx <mailto:tb@xxxxxxxxxxxxx>) wrote:
     > Hi Kenny,
     >
     > I'd do this by making each country a sprite with a transparent
     > background (colour-key transparency would work), then whenever
    the user
     > clicks doing a collision detection between the position of the mouse
     > cursor (first use rect-collision to build a small number of tiles
    which
     > match, then do pixel-perfect collision based on alpha - i.e.
    using the
     > sprite's mask). Easiest way to do this IMO is to draw an "invisible"
     > (e.g. position the sprite, but don't actually draw it to the screen)
     > 1x1px sprite at the position of the mouse cursor, then collide that
     > against the group containing all the country sprites.
     >
     > This technique means the countries can be any colour you want, or the
     > colour can change without messing things up. I used this method
    for my
     > isometric game engine to allow selection of tiles and other
    objects and
     > found it to be quite fast.
     >
     > Thanks,
     >
     > Timothy
     >
     >
     > On 18/05/2010 05:09, Kenny Meyer wrote:
     > > Hey,
     > >
     > > I'd like to work with irregular formed geometric shapes like
    those in of
     > > country maps in pygame.
     > >
     > > I want to do the following:
     > > "Divide" a country map into its states and provinces and make
    each of them
     > > "click-able", where the map could be an image (*.png) or maybe
    a vector graphic
     > > (*.svg).
     > >
     > > The result should be:
     > > A game where to guess and click the name of the state and
    province on a map.
     > >
     > > Observations:
     > > It would be quite difficult to assign each state/province fixed
    coordinates as
     > > those are irregular geometric shapes.
     > >
     > > Any ideas, pointers to other projects or suggestions?
     > >
     >

    Timothy,

    Thank you for your answer!

     > I'd do this by making each country a sprite with a transparent
     > background (colour-key transparency would work), then whenever
    the user
     > clicks doing a collision detection between the position of the mouse
     > cursor (first use rect-collision to build a small number of tiles
    which
     > match, then do pixel-perfect collision based on alpha - i.e.
    using the
     > sprite's mask). Easiest way to do this IMO is to draw an "invisible"
     > (e.g. position the sprite, but don't actually draw it to the screen)
     > 1x1px sprite at the position of the mouse cursor, then collide that
     > against the group containing all the country sprites.
    I get the idea and I also think I will try this.  Do you have any
    concrete
    examples of this in action?

    --
      Regards,
      Kenny Meyer