Cum de a genera zgomot perlin în pygame?

0

Problema

Eu sunt încercarea de a face un joc de supravietuire si am o problema cu zgomot perlin. Programul meu dă-mi asta:

enter image description here

Dar vreau ceva de genul insule sau râuri.

Aici e codul meu:

#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

Cel mai bun răspuns

0

Am recomanda instalarea noise pachet.
Apoi, utilizați noise.pnoise1(x) pentru 1 dimensional zgomot Perlin, noise.pnoise2(x, y) pentru 2 dimensional zgomot Perlin, și noise.pnoise3(x, y, z) pentru 3 dimensional zgomot Perlin.

2021-11-24 16:33:42
0

În primul rând, gândirea critică: Perlin este un termen popular, dar real "Perlin" algoritmul de zgomot este vechi și vizibil pătrat-aliniate. Mai bine, ca regulă generală, pentru a folosi un Simplex de tip zgomot.

Sugerez PyFastNoiseLite: https://github.com/tizilogic/PyFastNoiseLite Urmați instrucțiuni de instalare, apoi oglindă C++ exemplu în FastNoiseLite documentație aici: https://github.com/Auburn/FastNoiseLite/tree/master/Cpp asigurați-vă că rețineți sale interne de frecvență de multiplicare, pe care le puteți schimba cu SetFrequency(f)

Puteți folosi, de asemenea, Python zgomot biblioteca pentru Simplex de tip zgomot, cu zgomot snoise2(x, y) totuși, dacă doriți să utilizați snoise3(x, y, z) În primul rând aș lua în considerare informatii aici: https://www.reddit.com/r/proceduralgeneration/comments/qr6snt/countdown_timer_simplex_patent_expiration/

2021-11-24 20:37:26

În alte limbi

Această pagină este în alte limbi

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