Skocz do zawartości

Problem z "instance_create" w GM:S 1.4


Rafep

Rekomendowane odpowiedzi

Cześć! :) Ostatnio napisałem taki bardzo prosty generator terenu:

Obiekt obj_generator:

Create:

pixels_beetween_biomes = 150;

generator = false;

x = pixels_beetween_biomes;
y = pixels_beetween_biomes;

global.generator = true;

Step:

if global.generator = true
{
    generator = false;
    
    instance_create(x, y, obj_biom_trawa);
    
    x += pixels_beetween_biomes;
    
    if x = floor(room_width / pixels_beetween_biomes) * pixels_beetween_biomes
    {
        if y = floor(room_height / pixels_beetween_biomes) * pixels_beetween_biomes
        {
            global.generator = false;
        }
        else
        {
            y += pixels_beetween_biomes;
            x = pixels_beetween_biomes;
        }
    }
}

Obiekt porusza się tak, jak chciałem, ale problem jest z tworzeniem obiektu.

Obrazek przedstawia taki "schemat" tego, gdzie się generują, a gdzie nie obiekty "obj_biom_trawa" (czarne piksele przedstawiają miejsca, gdzie obiekty generują się normalnie, a białe - tam gdzie się nie generują)

Dodam jeszcze, że gdy obiekt obj_generator znajduje się w miejscu, gdzie miałby się pojawić "obj_biom_trawa", ale się nie pojawia, to na chwileczkę pojawia się sprite tego obiektu.

Wie ktoś dlaczego tak się dzieje? :( 

 

Błąd game maker.png

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

oblicz dokładnie co wychodzi z tego zaokrąglania floorem, być może powinno być tam ceil, bo w szerkości roomu brakuje 1-2 pikseli ? tak to wygląda, że Twój obiekt skacze do nowej linijki o jeden grid za szybko i tak samo w wysokość, co zatrzymuje generowanie (w ogóle ja bym ten warunek zmienił na if x >= room_width i tyle, powinno dac ten sam efekt, jak room ma rozmiaru podzielnego no to najwyżej narysuje Ci pół obiektu a pół poza ekranem).

Odnośnik do komentarza
Udostępnij na innych stronach

Zmieniłem kod w taki sposób, jak mi poradziłeś, ale błąd nadal występuje :<

Poza tym wydaje mi się, że źle zrozumiałeś problem. Obiekt porusza się w dobrym kierunku. (nadałem sprite obiektowi i widzę, że porusza się dobrze) Błąd polega na tworzeniu obiektów.

Tam, gdzie powinny się tworzyć - nie tworza się, a jedynie na chwilkę pojawia się sprite obiektu.

Mam nadzieję, że teraz rozumiesz.

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