If you’re trying to do a tile system and you don’t want to use the tilemap module or can’t use the tilemap module because of its constraints…
A better way is to store the tiles as a 2D array of tile types/tile indices.
Then when rendering you map those tile types to surface indices (storing all your tile surfaces in an array so you can map a ‘surface index’ to a surface) and you draw the tiles like that.
for y in range(map_width):
draw_y = # calculate draw y
for x in range(map_height):
draw_x = # calculate draw x
tile_type = get_tile(x, y)
surface = get_surface(tile_type)
Surface.blit(surface, draw_x, draw_y, transparent_index)
If you’re trying to have coins and/or moving platforms, those should be entities, not tiles.
Alternatively, you can have two layers of tiles.
If having a 2D array of tiles is too memory hungry then you can have a sparse matrix instead, but sparse matrices tend to be more computationally complex.
I take it that by ‘partly’, you mean it doesn’t do this:
You can pass keyword argument values to this function. These named values will be applied to the attributes of the Rect before it is returned. An example would be ‘mysurf.get_rect(center=(100,100))’ to create a rectangle for the Surface centered at a given position.
Also, pygame’s surface supports