Skocz do zawartości
Rafep

Problem z "instance_create" w GM:S 1.4

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Udostępnij tego posta


Odnośnik do posta
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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Cześć, może masz jakiś inny skrypt co powoduje znikanie obiektów - instance_destroy albo sprite ma animację która się nie loopuje i przeskakuje na pustą klatkę animacji. W debuggerze sprawdź, czy Ci znikają instancje z room-a.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Już mam rozwiązanie! Przez źle działający skrypt na render, aby zwiększyć optymalizację gry, niektóre z obiektów dezaktywowały się.

To by było na tyle w tym temacie, dalej sobie sam poradzę ;) 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

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

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×