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

Re: [pygame] roguelike question



On Mon, Oct 04, 2010 at 01:05:36PM -0500, Michael Schultz wrote:
> Hi, new to the list, but not the language. I'm completely at home with
> Python :)

Have you read PEP 8?

Your Common.Common class, which has two unrelated methods and no
instance state, and is instantiated everywhere for a single use and then
discarded, is not how we do things in Python land.  What's wrong with a
simple global function?

> Right now, I'm coding a roguelike game, and am having
> trouble getting the map to update changes. I've got movement and
> collision detection, but for whatever reason, the changes to the map
> are not being updated.
> 
> When the player is up against a "d" tile, and presses the key "d", the
> "d" should be replaced with a "." tile, but nothing's happening.

Because the code:

    for tile in tiles:
        if tile.rect.bottom == new_tile.rect.top:
            tile = new_tile

is not doing what you think it is doing (and also, the comparison looks
wrong).  You need something like:

    for index, tile in enumerate(tiles):
        if tile.rect == new_tile.rect:
            tiles[index] = new_tile

(Incidentally, a plain list of tiles is not the best data structure for
a roguelike.)

> Here's the files:
>
> ===move_test.py
> http://pastebin.com/fmz491K9
> 
> ===Actions.py
> http://pastebin.com/TUm3mv3b
> 
> ===Terrain.py
> http://pastebin.com/SXR8LqyL
> 
> ===Common.py
> http://pastebin.com/YhN2Cszu
> 
> ===Imp.py
> http://pastebin.com/2g4Yz469

Why not use Mercurial and put the code on bitbucket.org?

Or git and github.com?

Or Bazaar and launchpad.net?

Marius Gedminas
-- 
The primary purpose of the DATA statement is to give names to constants;
instead of referring to PI as 3.141592653589797, at every appearance,
the variable PI can be given that value with a DATA statement, and
used instead of the longer form of the constant. This also simplifies
modifying the program, should the value of PI change.
                -- Fortran manual for Xerox computers

Attachment: signature.asc
Description: Digital signature