Cómo generar ruido perlin en pygame?

0

Pregunta

Estoy tratando de hacer un juego de supervivencia y tengo un problema con el ruido perlin. A mi el programa me da esto:

enter image description here

Pero yo quiero algo como islas o ríos.

Aquí está mi código:

#SetUp#
import pygame, sys, random
pygame.init()
win = pygame.display.set_mode((800, 600))
pygame.display.set_caption('Isom')
x = 0
y = 0
s = 0
tilel = list()
random.seed(5843)
MAP = [random.randint(0, 1) for _ in range(192)]

#Tiles#
class tile():
    grass = pygame.image.load('Sprites/Images/Grass.png')
    water = pygame.image.load('Sprites/Images/Water.png')

#Loop#
while True:
    for key in pygame.event.get():
        if key.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    #World#
    for a in range(12):
        for b in range(16):
            if MAP[s] == 0:
                win.blit((tile.grass), (x, y))
            elif MAP[s] == 1:
                win.blit((tile.water), (x, y))
            x += 50
            s += 1
        x = 0
        y += 50
    x = 0
    y = 0
    s = 0
    #Update#
    pygame.display.update()
perlin-noise pygame python
2021-11-23 16:52:32
2

Mejor respuesta

0

Recomiendo la instalación de la noise paquete.
A continuación, utilice noise.pnoise1(x) para 1 dimensiones ruido Perlin, noise.pnoise2(x, y) para 2 dimensiones ruido Perlin, y noise.pnoise3(x, y, z) para 3 dimensiones ruido Perlin.

2021-11-24 16:33:42
0

En primer lugar, el pensamiento crítico: Perlin es un término popular, sino el acto de Perlin" ruido algoritmo es viejo y visiblemente cuadrados alineados. Mejor, como regla general, el uso de un Simplex de tipo de ruido.

Sugiero PyFastNoiseLite: https://github.com/tizilogic/PyFastNoiseLite Siga las instrucciones de instalación, a continuación, reflejar el ejemplo de C++ en el FastNoiseLite documentación aquí: https://github.com/Auburn/FastNoiseLite/tree/master/Cpp asegúrese de tener en cuenta su frecuencia interna de multiplicación, que puede cambiar con SetFrequency(f)

También puede utilizar el Python ruido de la biblioteca de Simplex de tipo de ruido, con el ruido snoise2(x, y) a pesar de que si usted desea utilizar snoise3(x, y, z) Me gustaría considerar en primer lugar la info aquí: https://www.reddit.com/r/proceduralgeneration/comments/qr6snt/countdown_timer_simplex_patent_expiration/

2021-11-24 20:37:26

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................