Marmot Opublikowano 18 Marca 2006 Udostępnij Opublikowano 18 Marca 2006 Witam! Tak sobie pomyślałem z 10 minut temu, że zrobię coś dla sceny. No i zrobiłem. Jest to przykład x) . https://gmclan.org/up24_11_powtorki.html Pokazuje on, jak łatwo można zrobić powtórki. Nie zrobiłem tu rozbudowanego przykładu, jest tylko odtwarzanie i zapis w jednym pliku, ale sądzę, że jak się pobawicie nad nim to całkiem fajne rzeczy mogą wyjść (np. zmiana kamer w 3D, jak w FIFA). Kod może nie jest najlepszy (nie bijcie mnie xD ), ale trochę już nie robiłem w GM i jakoś zamierzałem wrócić. Zachęcam do ściągania i komentarzy. EDIT: W information przykładu zapomniałem napisać, to napiszę: nagrywanie wyłącza się R, a odtwarzanie wyłącza się P. Jeżeli się nie wyłączy nagrywania, to nie można włączyć odtwarzania i wicewersa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jakim Opublikowano 18 Marca 2006 Udostępnij Opublikowano 18 Marca 2006 Fajne, ale: zapisywanie/odczytywanie z pliku *.ini może być nieoptymalne, co grozi spowolnieniem gry ;). Tak poza tym to dobrze, nawet bardzo :). Teraz patrzę, to mnie mdli, jak widzę inne eventy niż CREATE, STEP, DRAW i inne akcje niż EXECUTE A PIECE OF CODE :D. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 18 Marca 2006 Autor Udostępnij Opublikowano 18 Marca 2006 Teraz patrzę, to mnie mdli, jak widzę inne eventy niż CREATE, STEP, DRAW i inne akcje niż EXECUTE A PIECE OF CODE . Stare przyzwyczajenia xD . Ale przykład powinien być jak najprostszy :) . Jak dam wszystko do stepa to nie każdy początkujący się połapie, chociaż i tak trochę namieszałem w tym przykładzie :P . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jeremiah Opublikowano 19 Marca 2006 Udostępnij Opublikowano 19 Marca 2006 Powiem krótko: przykład niezły, wręcz genialny. Na pewno się komuś przyda. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nicolas Opublikowano 19 Marca 2006 Udostępnij Opublikowano 19 Marca 2006 O_o To może być dość trudne do użycia w jakiejś nieco bardziej rozbudowanej grze gdzie trzeba uwzględnić więcej obiektów (szczególnie, gdy jest parę takich samych i trzeba by się ID bawić). I nawet jeżeli przez to wsyzstko przebrniemy(z zapisem wszystkiego od pozycji, przez irection po sprita( o ile sie zmienia) i gdy uznamy, ze szybkosc odczytu nam nie przeszkadza) to pozostaje rozmiar pliku ini, ale czy w ogóle istnieje jakiś lepszy sposób? Mimo tego ten do większości prostych gierek powinien wystarczyć.... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
adam014 Opublikowano 19 Marca 2006 Udostępnij Opublikowano 19 Marca 2006 Spoko przykład może przyda sie dla kogoś do gry piłkarskiej. :thumbsup: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 19 Marca 2006 Autor Udostępnij Opublikowano 19 Marca 2006 Więc chcę rozwiać wszelkie wątpliwości: dodanie zmiennych do kolejnych objektów, oraz direction nie powinno być trudne, aczkolwiek powiększy rozmiar pliku powtórek. Obecnie szukam jakiegoś algorytmu którym mógłbym "spakować" jakoś ten plik, żeby nie był taki potężny. Zgodzę się z Nicolasem też - przykład jest dobry do prostych gier. Jest narazie poprostu za mało wydajny na bardziej rozbudowane gry, ale narazie tyle musi wam starczyć :] , chyba, że sami coś napiszecie ;p . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nicolas Opublikowano 19 Marca 2006 Udostępnij Opublikowano 19 Marca 2006 Ja jestem baaardzo leniwy i poprostu czekam, aż ktoś zrobi coś w stylu, że my podajemy jakie obiekty mają byc brane pod uwagę, a reszta to automat^^, ale to raczej mało realne... A co do dodawania obiektów to mógłbyś napisać mi np. sposób, jak zrobić na jakieś 5 obiektów takie samego typu? Nie chodzi mi o kod tylko, jakiś sposób na rozpoznanie, który obiekt po ID itd, bo jedyne co mogę wymyślić to, że każdy obiekt wysyłał by swoją pozycję + id tylko, jak zrobić, żeby wiedzieć jaka pozycja do jakiego ID jest :blink:? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 19 Marca 2006 Autor Udostępnij Opublikowano 19 Marca 2006 Po co ID? Można przypisać nazwę dla każdego objektu i powiedzmy będzie wysyłana zmienna postac2x, a potem dajemy postac.x=floor(postac2x) . Chyba wiesz co mam na myśli. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hanjuso Opublikowano 19 Marca 2006 Udostępnij Opublikowano 19 Marca 2006 Ja rzucilem sam sobie wyzwanie i przerobilem ten przyklad, zrobilem z niego 'automat' wystarczy w zmiennej ustalic czy obiekt ma byc zapisywany i wlaczyc, mozna stawiac wiele takich samych obiektow, zapisywane jest id. Dodatkowo x i y sa zapisywane jako jedna zmienna. Wiec Marmocie jezeli pozwolisz, to go opublikuje :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nicolas Opublikowano 19 Marca 2006 Udostępnij Opublikowano 19 Marca 2006 Hmm... No tak, ale problem obiętości nadal pozostaje i zastanawia mnie jedna rzecz... Skoro przy odczycie dajesz floor(), to przy zapisie też można dać i odrazu pare bajtów mniej. Taka tam mała propozycja... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 19 Marca 2006 Autor Udostępnij Opublikowano 19 Marca 2006 Próbowałem, ale GM zawsze zapisuje real w takiej postaci. Mogę spróbować zapisać jako string, ale nie jestem pewien czy będzie działać :/ . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
tomalas Opublikowano 19 Marca 2006 Udostępnij Opublikowano 19 Marca 2006 Hmm o co chodzi wam z objętością mi 5sek. powtórka zajmuje 15kb to jest dużo ? Powiedzmy ,że dojdzie jeszcze 50 obejktów to 750kb to według mnie nie jest dużo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 19 Marca 2006 Autor Udostępnij Opublikowano 19 Marca 2006 Zawsze można dodać algorytm kompresujący. Ja obecnie szukam takowego i wtedy rozbuduję ten przykład trochę :) . PS. Jak chcesz to daj tutaj ten przykład Hanjuso :) . Wszelkie poprawki są mile widziane. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hanjuso Opublikowano 19 Marca 2006 Udostępnij Opublikowano 19 Marca 2006 >link< Jest jeden problem, jak najpierw nagram np 100 klatek, potem na nowo bede nagrywac i nagram 50 a nastepnie odtworze to idzie pierwsze 50 klatek z tego nowego nagrania a potem konczy sie 50 klatek z pierwszego nagrania. Nie bardzo wiem jak temu zapobiec Juz sobie z tym poradzilem Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 20 Marca 2006 Administratorzy Udostępnij Opublikowano 20 Marca 2006 No teraz przykład jest ciekawszy :P Teraz wiem czmu w tekkenie pokazywali tylko ostatnie 3 sekundy walki - konsola nie miała tyle pamieci :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę