Skocz do zawartości

Losowa mapa z tilesów


Makary155

Rekomendowane odpowiedzi

  • 2 tygodnie później...

Nie wiesz co to HoMM ? SKANDAL! :P

 

a co do twojego pomyslu kapkap to nie rozumiem zbytnio o co Ci chodzi, obiekt zmienia sie losowo?

 

Co do tematu:

Zrobienie aby generowala sie jakas sensowna mapa będzie niezwykle trudno, a jesli chodzi o losowa mapke to zrob sobie tablice dwuwymiarowa i losuj do niej konkretnego tileseta potem zrob sobie obiekt ktory bedzie drawowal mapke( najlepeij zeby drawowal tylko tę czesc mapy ktora jest obecnie wyswietlana

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

może ten skrypt rozwiąże problem

 

umieszczasz go w create obiektu startowego

 

GML
_x=room_width/32+1;//32 to wielkość splitu

_y=room_height/32+1;// najlepszy jest split o tej samej wysokości co szerokości

i=0;j=0;k=0;

for(j=1;j<=_y;j+=1)for(i=1;i<=_x;i+=1){

c[j,i]=floor(random(2));//losowanie warunków początkowych

ch[j,i]=1;

};

for(j=0;j<=_y;j+=1) c[j,_x+1]=0;

for(i=0;i<=_x;i+=1) c[_y+1,i]=0;

c[_y+1,_x+1]=0

for(k=0;k<16;k+=1){//dla mniejszej liczby iteracji krawędzie nie będą gładkie

for(j=2;j<_y;j+=1)for(i=2;i<_x;i+=1) ch[j,i]=(c[j-1,i-1]+c[j-1,i]+c[j-1,i+1]+c[j,i-1]+c[j,i]+c[j,i+1]+c[j+1,i-1]+c[j+1,i]+c[j+1,i+1])div 5

for(j=1;j<=_y;j+=1)for(i=1;i<=_x;i+=1) c[j,i]=ch[j,i];

};

for(j=1;j<=_y;j+=1)for(i=1;i<=_x;i+=1){

sum=c[j-1,i-1]+c[j-1,i]+c[j-1,i+1]+c[j,i-1]+c[j,i]+c[j,i+1]+c[j+1,i-1]+c[j+1,i]+c[j+1,i+1]

if(c[j,i]=1){

n=instance_create(32*(i-1),32*(j-1),przeszkoda);

n.image_index=sum div 7;

}

};

 

 

Uwagi

 

  • skrypt wygeneruje plansze z tunelami, wyspami i pęcherzykami, plansza jest dla widoku z góry
  • w tej wersji skrypt działa dla przeszkody z splitem wyśrodkowanym
  • bohater powinien nie być szerszy od wielkości splitu przeszkody
  • przeszkoda dla image_index=0 powinna być niezniszczalna, a dla image_index=1 zniszczalna
Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...