Ako generovať perlin hluku v pygame?

0

Otázka

Snažím sa, aby prežitie hra a mám problém s perlin hluku. Môj program vypíše mi toto:

enter image description here

Ale chcem niečo ako ostrovy alebo riek.

Tu 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

Najlepšiu odpoveď

0

Odporúčam inštalácia noise package.
Potom pomocou noise.pnoise1(x) pre 1 rozmerov Perlin hluku, noise.pnoise2(x, y) pre 2 rozmerová Perlin hluku, a noise.pnoise3(x, y, z) pre 3 rozmerov Perlin hluku.

2021-11-24 16:33:42
0

Po prvé, kritické myslenie: Perlin je populárny pojem, ale skutočné "Perlin" hluk algoritmus je starý a viditeľne námestie zarovnané. Lepšie, ako všeobecné pravidlo platí, ak chcete použiť Simplex typu hluku.

Navrhujem PyFastNoiseLite: https://github.com/tizilogic/PyFastNoiseLite Postupujte podľa pokynov nainštalujte podľa pokynov, potom mirror C++ príklad v FastNoiseLite dokumentácie tu: https://github.com/Auburn/FastNoiseLite/tree/master/Cpp uistite Sa, že vedomie svoj vnútorný frekvencia násobenie, ktoré môžete zmeniť s SetFrequency(f)

Môžete tiež použiť Python hluku knižnica pre Simplex typu hluku, s hlukom snoise2(x, y) hoci ak si chcete použiť snoise3(x, y, z) Ja by som najprv zvážiť, info tu: https://www.reddit.com/r/proceduralgeneration/comments/qr6snt/countdown_timer_simplex_patent_expiration/

2021-11-24 20:37:26

V iných jazykoch

Táto stránka je v iných jazykoch

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