NukeBoards

Pomoc - [TGF/MMF] Własny edytor poziomów

l0ud - 25-02-2007, 18:39
: Temat postu: [TGF/MMF] Własny edytor poziomów
Czy istnieje jakaś gra na PSK, która posiada możliwość modyfikacji jej poziomów przez użytkownika? Czy obmyślił ktoś, na jakiej zasadzie taki edytor ma działać? ;) Proszę o trochę info na ten temat.

btw, pytanie zadaję raczej z ciekawości ;)

Pozdrawiam
BROO - 25-02-2007, 18:49
:
http://members.lycos.co.uk/rsthp/kursy/35.html
http://members.lycos.co.uk/rsthp/kursy/17.html
Osobiście polecam ten drugi, bo autorski.

Etapy Muszą być wtedy zapisywane do oddzielnych plików. Etapy zrobione w edytorze etapów wewnątrz gry TGFowej nie są możliwe do edycji.
Minty - 25-02-2007, 18:54
:
Było kilka takich gier, niestety nie podam przykładów, ale możesz poszukać:
http://nuke-szuk.xn.pl/

Edytor mógłby działać tak: przy kliknięciu w dozwolonym miejscu na pustej planszy tworzy się obiekt, który np. reprezentuje przeciwnika, postać lub cokolwiek innego. Przy uruchomieniu zapisu takiej planszy włączana byłaby pętla (lub pętle) Fast Loopa, który po kolei wybierał obiekty nieoflagowane, zapisywał ich pozycje do tablicy (np. Dynamic Array) i oflagowywał je. Po zakończeniu pętli (byłaby uruchamiana na tyle przebiegów, ile jest obiektów) tablica zapisywałaby się do pliku wybranego przez użytkownika, a wszystkie obiekty znowu stawałyby się odflagowane.
l0ud - 25-02-2007, 19:01
:
RomanX, ale to jest dobre w przypadku, gdy posiadamy tylko jeden typ obiektów. Na każdy rodzaj trzeba by było zrobić oddzielną pętlę, ale to chyba jest nieuniknione... :doubt:

[ Dodano: 25-02-2007, 19:02 ]
RomanX napisał/a:
który po kolei wybierał obiekty nieoflagowane


to mnie jeszcze zastanawia, jak stworzyć wybieranie elementów spełniających dany warunek? Ja nie mam pomysłu na to :/
Minty - 25-02-2007, 19:14
:
No tak, kilka pętli, można też je uruchamiać z pętli zbiorczej xD wszystko w jednej klatce się wykona.

Każdy obiekt ma 3 (TGF) lub 26 (MMF) zmiennych A, B, C itd., ma też flagi - po 32 na obiekt.

Jeśli flaga 0 jest wyłączona, to włącz i zapisz parametry do tablicy.

http://www.romanx.kosa.ne...php?title=Flaga
l0ud - 25-02-2007, 19:20
:
RomanX napisał/a:
Jeśli flaga 0 jest wyłączona, to włącz i zapisz parametry do tablicy.


czyli... jeżeli po prostu zrobię taki warunek w pętli, to MMF wybierze jeden z obiektów będzie można normalnie pobrać jego współrzędne? A w jaki sposób rozpoznać, czy wybrany obiekt jest już ostatni (że wszystkie obiekty mają już opuszczoną flagę)?
Minty - 25-02-2007, 19:46
:
Number( obiekt ) - liczba obiektów "obiekt". Tyle razy uruchamia się przypisana mu pętla, więc nie ma problemów. Pętla wybiera tylko nieoflagowane obiekty, więc po "zużyciu" jednego - bierze kolejny.
jarlfenrir - 25-02-2007, 21:47
:
Trochę pomyśleć i można zdziałać niemal wszystko.
Gier takowych było kilka, jeśli dobrze pamiętam, to edytor ma słynny Otoczony, Rozdwojenie świstaka i GMowe Wormsy (Nie pamiętam tytułu, taka gierka wormsowa zrobiona na konkurs świstakowy, zajęła miejsce tuż za mną - 17 chyba).
W TGFie żeby zrobić edytor potrzebujesz na pewno jakiś plik zewnętrzny (na przykład obiekt INI) w którym zapiszesz ile razy, jakie obiekty i w jakich miejscach maja się pojawić, i potem za pomocą fastloopa (bo tak szybciej) wygenerować poziom wg. wskazówek.
Wcześniej wspomniana produkcja GMowa wczytywała pliki GIF.
l0ud - 26-02-2007, 00:14
:
Zrobiłem swój edytor poziomów, lecz podczas odczytu większego pliku (gdzie trzeba chwilę 'pomyśleć') edytor wysypuje się :/ (wystąpił problem z programem... blebleble) dzieje się tak tylko przy windows, o dziwo w Linuxie działa normalnie i bezpośrednio przez MMF'a nie ma problemów :doubt: Już nie wiem gdzie szukać problemu... albo zrezygnuję z fastloopa, albo rzucam ten cały projekt :cry:

Używam pętli, która się zapętla (znajduje się w niej warunek, po którego spełnieniu pętla uaktywnia się ponownie). Pętla operuje na INI i tworzy nowe obiekty aktywne... Z początku w MMF'ie też się wysypywało, ale zwiększenie limitu obiektów pomogło. Natomiast jako stand-alone nie chodzi. Kiepsko to widzę...
jarlfenrir - 26-02-2007, 00:19
:
No więc pamiętaj, że w TGFie możesz pokazać max 262 obiekty (jeśli dobrze pamiętam). Generalnie jeśli limit zostanie osiągnięty, obiekt zwyczajnie się nie pojawi. Widać fastloop stanowi tu problem (mianowicie na siłę próbuje stworzyć obiekt, podczas gdy TGF na to nie pozwala i stąd ten błąd).
Ostrzegam tylko, że jeśli zrobisz to bez fastloopa, to generowanie planszy będzie trwało znacznie dłużej (może nawet kilka sekund).
Ja bym raczej zalecał spróbować wygenerować planszę z mniejszą ilością obiektów.
l0ud - 26-02-2007, 00:25
:
Fenrir, używam MMF'a ze zwiększoną liczbą obiektów aktywnych. Myślę że to fastloop 'zapycha' zasoby podczas wczytywania. A bez niego wczytuje się bardzo długo ten poziom :/

[ Dodano: 28-02-2007, 19:56 ]
Problem rozwiązany samodzielnie :-P Idę to opić :madugly:

Chociaż sam dokładnie nie wiem, co go powodowało :???: