Jak generovat perlin hluk v pygame?

0

Otázka

Snažím se vytvořit survival hru a mám problém s perlin noise. Můj program mi dává toto:

enter image description here

Ale já chci něco jako ostrovy nebo řeky.

Tady je můj kód:

#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

Nejlepší odpověď

0

Doporučuji instalaci noise balíček.
Pak použijte noise.pnoise1(x) pro 1 dimenzionální Perlin noise, noise.pnoise2(x, y) pro 2 dimenzionální Perlin hluk, a noise.pnoise3(x, y, z) pro 3 dimenzionální Perlin noise.

2021-11-24 16:33:42
0

První, kritické myšlení: Perlin je populární termín, ale skutečnou "Perlin" noise algoritmus je starý a viditelně náměstí-vyrovnány. Lepší, jako obecné pravidlo, použijte Simplex-typ hluku.

Navrhuji PyFastNoiseLite: https://github.com/tizilogic/PyFastNoiseLite Řiďte se pokyny pro instalaci, pak zrcadlo C++ příklad v FastNoiseLite dokumentace zde: https://github.com/Auburn/FastNoiseLite/tree/master/Cpp ujistěte se, že vědomí jeho vnitřní frekvence násobení, které můžete změnit s SetFrequency(f)

Můžete také použít Python hluk knihovna pro Simplex-typ hlukem, s hlukem snoise2(x, y) i když, pokud chcete používat snoise3(x, y, z) Já bych nejprve zvážit info zde: https://www.reddit.com/r/proceduralgeneration/comments/qr6snt/countdown_timer_simplex_patent_expiration/

2021-11-24 20:37:26

V jiných jazycích

Tato stránka je v jiných jazycích

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