Skocz do zawartości

Niedziałająca funkcja na losowanie liczb


Rafep

Rekomendowane odpowiedzi

Proszę:

if global.generator = true
{
    generator = false;
    
    if distance_to_object(obj_biom_pustynia) < 500
    {
        los = irandom_range(0, 4);
        
        if los < 4
        {
            if pustynia > 0
            {
                instance_create(x, y, obj_biom_pustynia);
                pustynia -= 1;
                generator = true;
            }
        }
    }
    
    if generator != false
    {
        los = irandom_range(0, 15);
        
        if los < 15
        {
            instance_create(x, y, obj_biom_trawa);
            pustynia += 1;
        }
        
        if los = 15
        {
            if pustynia > 0
            {
                instance_create(x, y, obj_biom_pustynia);
                pustynia += 1;
            }
            else
            {
                instance_create(x, y, obj_biom_trawa);
                pustynia += 1;
            }
        }
    }
    
    instance_create(x, y, obj_biom_trawa);
    
    x += pixels_beetween_biomes;
    
    if x > room_width / pixels_beetween_biomes * pixels_beetween_biomes
    {
        if y > room_height / pixels_beetween_biomes * pixels_beetween_biomes
        {
            global.generator = false;
        }
        else
        {
            y += pixels_beetween_biomes;
            x = pixels_beetween_biomes;
        }
    }
}

 

Odnośnik do komentarza
Udostępnij na innych stronach

Well, nie mam pojęcia, wszystko wygląda ok. Możesz spróbować zapisać to inaczej. Może coś się koliduje z poprzednim los = irandom_range(0, 4);
 

var _los = irandom_range(0, 15);

if(_los < 15)
{
	instance_create(x, y, obj_biom_trawa);
	pustynia += 1;             
}

Możesz jeszcze spróbować zrestartować gm'a :V 

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

W dokumentacji jest opisane, że jak testujesz grę, to zawsze ziarno jest ustawiane na takie samo, zeby łatwiej było debugować.

 

Musisz dać randomize() w create i powinno działać.

 

Oczywiście, zamiast testować swój długi kod, wystarczy

 

randomize();
show_debug_message(irandom_range(0,12));

 

I odpalić grę parę razy dla pewności. Jak będą inne, to wszystko działa.

 

Btw, sprawdź czy używasz wersji 1.4.9999 - ale pamiętaj, że GMS 1.4 nie jest już wspierany od niemal roku.

Odnośnik do komentarza
Udostępnij na innych stronach

Tak nie w temacie losowości to dostrzegłem tutaj błąd logiczny że blok:

 if generator != false
    {
        los = irandom_range(0, 15);
        
        if los < 15
        {
            instance_create(x, y, obj_biom_trawa);
            pustynia += 1;
        }
        
        if los = 15
        {
            if pustynia > 0
            {
                instance_create(x, y, obj_biom_pustynia);
                pustynia += 1;
            }
            else
            {
                instance_create(x, y, obj_biom_trawa);
                pustynia += 1;
            }
        }
    }

 

Nigdy się nie wykona bo wyżej zawsze ustawiasz generator = false

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ę...