Ejemplo n.º 1
0
    def generate(self):
        world_size = 50
        sea_level = 0.35
        ocean_end = 0.7 * sea_level
        beach_end = 0.4
        grass_end = 0.75
        mountain_end = 0.9

        tree_chance = 0.35
        print("generate() - generating terrain noise")
        terrain_noise_matrix = World.new_noise_matrix(world_size, octaves=4)
        print("generate() - generating decorations noise")
        decorations_noise_matrix = World.new_noise_matrix(world_size,
                                                          octaves=8)
        print(f"generate() - placing tiles")

        for x in range(world_size):
            for y in range(world_size):
                terrain_noise = terrain_noise_matrix[x][y]
                if terrain_noise < ocean_end:
                    t = tile.Ocean(self, (x, y))
                elif terrain_noise < sea_level:
                    t = tile.Coast(self, (x, y))
                elif terrain_noise < beach_end:
                    t = tile.Sand(self, (x, y))
                elif terrain_noise < grass_end:
                    if decorations_noise_matrix[x][y] < tree_chance:
                        t = tile.Tree(self, (x, y))
                    else:
                        t = tile.Grass(self, (x, y))
                elif terrain_noise < mountain_end:
                    t = tile.Mountain(self, (x, y))
                else:
                    t = tile.Snow(self, (x, y))

                t.name = f"{t.name} {terrain_noise}"

        print("generate() - spawning player")
        Human(self, (25, 25))
        Human(self, (26, 25))
        Human(self, (25, 26))
        self.camera_pos = 444, 444
        print("generate() - done")