Pygame无限世界世代破碎

Pygame Infinite World Generation Broken

所以我正在使用 python 中的 pygame 模块制作一款基本的 2D 平台游戏。最近我一直在尝试实现无限世界生成,但遇到了一些问题。生成工作正常,但是,在玩家的生成处,生成了一堆随机图块,阻碍了整个生成区域。我似乎找不到造成这种情况的原因。 这是复制我的情况所需的一切:

地图生成:

def generate_chunk(x,y):
    chunk_data = []
    for y_pos in range(CHUNK_SIZE):
        for x_pos in range(CHUNK_SIZE):
            target_x = x * CHUNK_SIZE + x_pos
            target_y = y * CHUNK_SIZE + y_pos
            tile_type = 0 # nothing
            if target_y > 10:
                tile_type = 2 # dirt
            elif target_y == 10:
                tile_type = 1 # grass
            elif target_y < 10:
                tile_type = 0
            if tile_type != 0:
                chunk_data.append([[target_x,target_y],tile_type])
    return chunk_data
...

while True:
...
tile_rects = []
    for y in range(3):
        for x in range(4):
            target_x = x - 1 + int(round(scroll[0]/(CHUNK_SIZE*16)))
            target_y = y - 1 + int(round(scroll[1]/(CHUNK_SIZE*16)))
            target_chunk = str(target_x) + ';' + str(target_y)
            if target_chunk not in game_map:
                game_map[target_chunk] = generate_chunk(target_x,target_y)
            for tile in game_map[target_chunk]:
                display.blit(tile_index[tile[1]],(tile[0][0]*16-scroll[0],tile[0][1]*16-scroll[1]))
                if tile[1] in [1,2]:
                    tile_rects.append(pygame.Rect(tile[0][0]*16,tile[0][1]*16,16,16))    

完整代码: https://github.com/nice-404/Platformer

我似乎无法弄清楚是什么导致随机生成图块。

(我一直在关注 DaFluffyPotato 的平台教程系列,因为我是 pygame 的新手)

经过 2 周的调试并进一步查看块生成代码后,我找不到任何东西。但是,我确实发现问题只发生在一个小区域,即 0 x 值处。所以我所做的是让玩家的出生点离它很远,并设置了一个边界,这样它就不会走得太远而无法看到这个问题。并没有真正解决问题,但至少现在可以了。