Either singletons or globals would work fine.  Singletons are more useful
when you see a need to enforce a rule that the class must be instanced only
once, but if you are the only developer and can trust yourself not to do
something silly, globals work just as well.  I tend to use singletons
because I avoid globals as a matter of principle (except in prototype
programs).

On Fri, Jul 17, 2009 at 5:47 PM, Jake b <ninmonk...@gmail.com> wrote:

> Summery:
> How do I organize my data structures to read or pass my Game() object in
> ship.py ?
>
> Here is Pseudo code of what i'm talking about:
>  http://pastebin.com/m985fe2f
>
> Long:
>
> How do you use your 'game' class? I created one class that handles screen
> creation, game main loop, list of Sprites, etc... But I'm not sure on how I
> should access the game members.
>
> In Ship.draw() I have a couple of potential examples, where the one i'm
> using right now is:
> self.screen.blit(self.image)
> (It saves a reference to Game.screen)
>
> But, this requires me to create my objects inside of Game(), passing a
> reference to the game instance every time a sprite is created, like so:
> # def Game.spawn():
> self.sprites.add( Ship( self ) )
>
> This seems wrong/hackish to me. Is there a way I can have a (semi?) global
> function / method? Or should I do this?
>
> I didn't want to make 'screen' a global variable, because I want access to
> Game(), since there are multiple members/methods I need access to.
>
> Another example: of a function that needs access to game members: This is
> called in ship.py when the sprite is spawned.
>
> # def Game.randLoc(self):
> """returns random location that exists in boundries of current map"""
>  return randint( 0, self.map.width ), randint( 0, self.map.height)
>
> --
> Jake
>



-- 
--Ostsol

http://cheesesun.blogspot.com/

Reply via email to