[TGF2] Sortowanie bez rozszerzeń? |
Autor |
Wiadomość |
Mefisto
Bohater
 
Główny edytor: 
Drugi edytor: 
Pojedynki: być może
Pomógł: 3 razy Posty: 74
4255 Prestiż
|
Wysłany: 01-06-2012, 19:33 [TGF2] Sortowanie bez rozszerzeń?
|
|
|
Jak w temacie, można coś takiego osiągnąć?
Potrzebuję tego, aby zrobić wyszukiwanie najbliższego npc od gracza. W zmiennej B zapisywana jest odległość między npc a graczem, jednak nie potrafię zweryfikować który z npc ma najmniejszą zmienną B. Zaznaczam, że używam TGF2 w wersji Newgrounds.
To co udało mi się zrobić:
-na starcie npc mają przypisany id w zmiennej A(spread value)
-zawsze: startuje pętla "distance" tyle razy ile jest npc`ów
-podczas działania pętli w zmiennej B npc`ów zapisuję się ich odległość od gracza
-i tutaj się zatrzymałem...
Próbowałem załatwić to obiektem listy, ale bez powodzenia. Jeśli macie jakieś pomysły jak to rozwiązać, albo macie jakiś inny patent na znajdywanie najbliższego obiektu to proszę piszcie! |
|
|
|
 |
Wackyjackie
Bohater Starszy Chorąży Sztabowy Randomu
 
Główny edytor: 
Drugi edytor: 
Pojedynki: nie
Pomógł: 69 razy Posty: 711
36293 Prestiż
|
Wysłany: 01-06-2012, 19:50
|
|
|
Obiekty listy są wolne, nie należy ich kiedykolwiek używać, potrafią masakrycznie zwolnić działanie aplikacji, szczególnie flashowej .
Pętle we flashu też niewskazane, ale to tak na marginesie.
Skoro już masz bazę odległości od gracza, to wystarczy w pętli zapisywać do innej zmiennej X (pojedynczego obiektu / globalnej!) wartość B (odległość) aktualnie sprawdzanego aktywnego z warunkiem ustawiania X na wartość B, jedynie jeśli X jest większe od B.
I dodajesz zdarzenie Pick Objects which Alterable Value B = ta wartość X --> i co chcesz zrobić z obiektem (zapewne nawiązać dialog ;>). |
|
|
|
 |
Minty
Stwórczyni omc dr fizyki
 
Główny edytor: 
Drugi edytor: 
Pojedynki: być może
Pomogła: 259 razy Posty: 3445
33730 Prestiż
|
Wysłany: 01-06-2012, 20:09
|
|
|
Mefisto napisał/a: | Próbowałem załatwić to obiektem listy, ale bez powodzenia. |
A co jeśli na listę wsadzisz x+10000 zamiast x? Wtedy zamiast:
Będzie:
Wackyjackie napisał/a: | Obiekty listy są wolne |
W sumie nie wiem, ale co jak się je ukryje? Sortowanie always byłoby straszne, ale raz na np. pół sekundy nie powinno być tak tragicznie. |
|
|
|
 |
Wackyjackie
Bohater Starszy Chorąży Sztabowy Randomu
 
Główny edytor: 
Drugi edytor: 
Pojedynki: nie
Pomógł: 69 razy Posty: 711
36293 Prestiż
|
Wysłany: 01-06-2012, 20:22
|
|
|
Ukrytych nie testowałem - wolę tablicę wsadzić, albo odpowiednik wbudowanej listy (jest "Internal List Object" i polski "List of Numbers").
Robiłem sobie ostatnio z dwóch list debuggery. W pętli puszczanej zawsze 9 razy, wywalałem na ekran zawartość tablicy, dla obu list w tej samej pętli. Bez nich - 450-500FPS. Po ich zastosowaniu, FPSy spadały czasami nawet poniżej 50. Dlatego im już kompletnie nie ufam.
//Napisałem to jak połamany, nie wiem ile razy musiałem edytować '. |
|
|
|
 |
Mefisto
Bohater
 
Główny edytor: 
Drugi edytor: 
Pojedynki: być może
Pomógł: 3 razy Posty: 74
4255 Prestiż
|
Wysłany: 02-06-2012, 10:31
|
|
|
Wackyjackie napisał/a: | Skoro już masz bazę odległości od gracza, to wystarczy w pętli zapisywać do innej zmiennej X (pojedynczego obiektu / globalnej!) wartość B (odległość) aktualnie sprawdzanego aktywnego z warunkiem ustawiania X na wartość B, jedynie jeśli X jest większe od B.
|
Wpadłem na to samo, ale nie wiem jak to w praktyce zrealizować
RomanX napisał/a: | A co jeśli na listę wsadzisz x+10000 zamiast x? Wtedy zamiast:
Kod:
1
10
2
Będzie:
Kod:
10001
10002
10010
|
Ok, ale co to zmieni w moim przypadku? |
|
|
|
 |
Minty
Stwórczyni omc dr fizyki
 
Główny edytor: 
Drugi edytor: 
Pojedynki: być może
Pomogła: 259 razy Posty: 3445
33730 Prestiż
|
Wysłany: 02-06-2012, 12:33
|
|
|
Cytat: | Próbowałem załatwić to obiektem listy, ale bez powodzenia. |
Myślałam, że w tym problem. Nie wiesz, jak powiązać wartości z obiektami? Dodaj do ciągu jeszcze fixed value, jeśli dasz na końcu, to nie wpłynie to na wynik sortowania, a potem używaj warunku pick object by fixed value.
Czy o co chodzi? |
|
|
|
 |
Mefisto
Bohater
 
Główny edytor: 
Drugi edytor: 
Pojedynki: być może
Pomógł: 3 razy Posty: 74
4255 Prestiż
|
Wysłany: 02-06-2012, 14:19
|
|
|
Nie wiem jak dodać do listy zmienną B wszystkich npc`ów. Jak uruchamiam pętlę np. "sort" tyle razy ile jest obiektów i daję akcję że podczas działania pętli do listy dodaje się linia z wartością B tylko ostatniego utworzonego npc. Dodawałem zdarzenie loop index=zmienna A npc(zmienna A to identyfikator), ale to nic nie pomogło. |
|
|
|
 |
|