NukeBoards - Kreatywność przede wszystkim
FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  DownloadDownload
RejestracjaRejestracja  ZalogujZaloguj

Odpowiedz do tematu
Poprzedni temat :: Następny temat
[Fusion] Array - problem z FastLoopem
Autor Wiadomość
Pl00 
Plutonowy


Główny edytor: Fusion 2.5
Drugi edytor: TGF
Posty: 94

5538 Prestiż
  Wysłany: 25-02-2021, 01:23   [Fusion] Array - problem z FastLoopem

Hej, od niedawna bawię się znowu w tworzenie czegoś w CF2.5. Napotkałem jednak niestety problem ze stworzeniem zapisu.
Cały czas gdy opierałem się na Arrayu, to zawsze było to po prostu czyste wczytywanie z niego wartości. W tym momencie potrzebuję, by wartości z Arraya były wczytywane tyle razy, ile jest obiektów na planszy.
Użyłem więc Spread Value, żeby każdemu obiektowi przypisać ID. Po tej czynności, stworzyłem też kolejną zmienną dla obiektów, która zmienia wartość po zniszczeniu obiektów. Chciałbym, żeby podczas początku poziomu każdy z obiektów mógł wczytać tę wartość (czy zniszczono).
Niestety, gdy próbuję w pętli użyć "scopingu" obiektów (On loop "loopname" && Id of Object = LoopIndex("loopname")), to pętla wykonuje się tylko raz i żaden z obiektów nie dostaje wartości z Arraya. Czy wie ktoś czym może to być spowodowane?

Screen ze zdarzeń

Z góry dziękuję za pomoc :D
 
     
msg 
Pupogłowy
~~~~~~~~~~~


Główny edytor: KNP
Drugi edytor: KNP
Pomógł: 76 razy
Posty: 1409


40064 Prestiż
Wysłany: 25-02-2021, 19:45   

W Zdarzeniu czwartym, nie ma powiązania między warunkiem "On loop" a indeksem obiektu, który wybierze każdy kolejny obiekt w drugim warunku zdarzenia 4. Dlatego też przez całą pętlę akcja wykonuje się dla ostatniej instancji tego obiektu. Zamień wbudowanego fast loopa na For Each, będzie działać: https://imgur.com/a/oGPcUsX
_________________
:razzugly:
 
     
Pl00 
Plutonowy


Główny edytor: Fusion 2.5
Drugi edytor: TGF
Posty: 94

5538 Prestiż
Wysłany: 26-02-2021, 17:16   

Po zmianie loopa i zdarzeń na te, które podałeś nadal niestety nie działa :/ Masz może jakiś pomysł co z tym zrobić? Jeśli tak to super, jakbyś był w stanie mi pomóc, bo naprawdę chciałbym zrozumieć dlaczego tym razem nie działa :'D

Screen z nowymi zdarzeniami: https://imgur.com/a/qAenZpM
Plik .mfa: https://www.mediafire.com...6/loop.mfa/file
 
     
msg 
Pupogłowy
~~~~~~~~~~~


Główny edytor: KNP
Drugi edytor: KNP
Pomógł: 76 razy
Posty: 1409


40064 Prestiż
Wysłany: 26-02-2021, 21:45   

Może coś źle przepisałeś? U mnie działa :madugly: https://www.dropbox.com/s...spread.mfa?dl=1
_________________
:razzugly:
 
     
Pl00 
Plutonowy


Główny edytor: Fusion 2.5
Drugi edytor: TGF
Posty: 94

5538 Prestiż
Wysłany: 27-02-2021, 18:44   

Z tym przykładem co podesłałeś nadal jest problem niestety :( Array potrafi mieć wartość 1, a B po załadowaniu poziomu nadal pozostaje 0 i nie usuwa obiektu. Przy usuwaniu np. jednego obiektu działa, ale gdy np. już próbuję sprawić, by nie było żadnych obiektów, to jest to niemożliwe

Screen
 
     
msg 
Pupogłowy
~~~~~~~~~~~


Główny edytor: KNP
Drugi edytor: KNP
Pomógł: 76 razy
Posty: 1409


40064 Prestiż
Wysłany: 27-02-2021, 21:32   

Aktualizacja przykładu. Tym razem 10 obiektów.
Pl00 napisał/a:
Array potrafi mieć wartość 1, a B po załadowaniu poziomu nadal pozostaje 0 i nie usuwa obiektu.

To nie tak. Array MA wartość 0 w przypadku tych konkretnych obiektów, informacja usun=1 nie zapisała się w niektórych polach array, a dzieje się to dlatego, że masz Spread Value w warunku Always. Oznacza to, że po dynamicznym usunięciu obiektów Spread numeruje je od nowa, a więc nie bierze pod uwagę wszystkich pól Arraya, tylko mniej, a przez to ty możesz usunąć kilka obiektów z planszy a informacja o tym, będzie przechowywana w jednym i tym samym polu arraya. Najmniej korzystną sytuacją jest, gdy za każdym razem "przypadkowo" trafisz na pierwszy z obiektów, wtedy każda informacja o usuwaniu zapisze się do pola o id 0 i po wyczyszczeniu planszy z obiektów i restarcie zostanie ci 9 z 10 obiektów.
Dodałem listę debugową, która pokazuje co się wczytało z arraya a potem co się usuwa po kliknięciu. Przenieś sobie akcję Spread z prawidłowego start of frame do Always z powrotem, zobaczysz jakie głupoty się pokazują w "logu":
https://www.dropbox.com/s...spread.mfa?dl=1
Spread w always może zadziałać pod warunkiem, że obiekty oznaczone do usunięcia po restarcie ramki nie zostaną usunięte od razu po kliknięciu w nie, bo w takiej sytuacji Always >> Spread zawsze przynosi taki sam wynik: numeruje wszystkie 10 obietków.
_________________
:razzugly:
 
     
Pl00 
Plutonowy


Główny edytor: Fusion 2.5
Drugi edytor: TGF
Posty: 94

5538 Prestiż
Wysłany: 28-02-2021, 12:59   

Okej, teraz po przeanalizowaniu wszystkiego rozumiem w czym był problem. Dzięki wielkie za pomoc! :D
 
     
Cootje 
Legenda


Główny edytor: Fusion 2.5 Dev
Drugi edytor: Stencyl
Pojedynki: być może
Pomógł: 35 razy
Posty: 633

17978 Prestiż
Wysłany: 06-08-2021, 17:32   

"W tym momencie potrzebuję, by wartości z Arraya były wczytywane tyle razy, ile jest obiektów na planszy." Oj nie byczku, oj nie tu w tym zdaniu masz błąd i to poważny :)

Proponuję wczytać raz Array i potem wczytać z niego dane do obiektów według odpowiedniego algorytmu najlepiej stwórz sobie odpowiednią strukturę za pomocą, której będziesz tworzyć zapisane obiekty i wczytywać do nich dane ;)
_________________
Mój klucz publiczny PGP
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

PSK Cytaty Klikibaza - kopia wszystkich klików Klikipedia - encyklopedia o tworzeniu gier Discord KlikCzat Zaproszenie
Daj piniondza Wielkie Muzeum Klikowe

Powered by phpBB modified by Przemo © 2003 phpBB Group