Zarejestruj Zapomniałeś hasła?
Aktualizacja wraz ze zmniejszonym rozmiarem plików
Dodany 4 kwietnia 2009, 19:42 Odsłon 1604
Edytory Ocena
 (4 głosy)
Kategoria Silnik Poziom (Dla średnio-zaawansowanych)
PCT?

Ostatnio dość popularne stało się mówienie o aktualizacjach własnych aplikacji zapoczątkowane przez aplikację misieksamgame Mapa Polskich Klikowców następnie kurs Zetcom'a z 5 numeru Ślimaczka, a potem programik RX'a.. A po co to.. no więc dzięki takiej aktualizacji z Internetu użytkownicy naszych aplikacji mogą pobrać nowe wersje naszych dzieł.

Potrzebne składniki?

Rozszerzenia:
NOBU http
Unzip Object
File Object (tylko do TGF, MMF ma wbudowany)

Plik:
Start

Dlaczego aż 3 rozszerzenia zamiast 1 NOBU http? Jak wspomniałem w tytule jest to aktualizacja wraz z zmniejszonym rozmiarem plików. Który uzyskujemy w bardzo prosty sposób pakując nasz plik do formatu *.zip !!! Jest to wręcz banalne a zarazem genialne bo przy niektórych rodzajach plików zmniejsza się ich pojemność kilkukrotnie (!!) co wpływa na szybkość ich ściągnięcia a zarazem wygodę użytkowania. A plik Start.zip posłuży w tym przykładzie jako aplikacja do której jest aktualizacja.

Do dzieła

A więc zaczynamy naszą przygodę z aktualizacjami:

Najpierw wgrajmy na swój serwer plik o nazwie new.txt a w nim jedynie cyferkę 2 oraz plik new.zip w którym będzie nasza aktualizacja oraz w katalogu gdzie zapiszemy nasz projekt pik act.txt z jedną cyferką 1.

Stwórzmy nowy projekt w TGFie i w pierwszym poziomie dajmy rozszerzenie Nobu HTTP oraz 2 edit boxy, text z treścią 'Jest nowa wersja. Czy chcesz ją teraz pobrać? Wciśnij T jeśli się zgadzasz, wciśnij N jeśli nie chcesz aktualizować'. Edit boxy i obiekt NOBU http umieśćmy poza ekranem gry.

Przejdźmy do zdarzeń:

Stwórzmy 2 grupy - com oraz act

1
• Start of level
Special Conditions Deactive group "com"
Deactive group "act"
Jest nowa wersja... Erase text


Na początku deaktywujemy 2 grupy, do których zaraz przejdziemy.

2
• Timer equals 00''-50
NOBU http DownBuf = 1024x1
URL "http://fano.victorygames.info/pl/teksty/artykuly/Fabryka_Gier/aktualizacja_wraz_ze_zmniejszonym_rozmiarem_plikow/new.txt => "new.txt"


Kiedy czas wynosi pół sekundy ustal bufor ściągania na 1024x1 i podajemy link do pliku oraz nazwę pod jaką ma być zapisany. Dlaczego pół sekundy a nie na początku poziomu? Czasami podczas Start of level gra się wiesza albo wyświetla pusty poziom więc jest to pewne zabezpieczenie...

3
• Only one action when event loops
NOBU http Download Complate
Special conditions Active group "com"
Edit Box Load file "new.txt"
Edit Box 2 Load file "act.txt"


Teraz następuje aktywacja grupy która dokona sprawdzenia czy jest nowa wersja naszego dzieła oraz wczytanie nr wersji z plików tekstowych new.txt (nowa wersja) i act.txt (aktualna wersja).

com
5
• Run this event once
Edit Value ("Edit Box") > Edit Value ("Edit Box 2")
Special conditions Active group "act"
Deactive group "com"
Jest nowa wersja.. Display paragraph 1 at (250, 150)
6
• Run this event once
Edit Value ("Edit Box") <= Edit Value ("Edit Box 2")
Special conditions Execute external program Start.exe
Storyboard controls End Game


Tutaj w grupie com mamy do czynienia z porównywaniem wartości w zdarzeniu 5] sprawdzamy czy wartość pobrana z Internetu z pliku new.txt jest większa od wartości w pliku act.txt jeśli tak to przechodzimy do następnej grupy. Za to w zdarzeniu 6] mamy do czynienia z przypadkiem gdy wartość z pliku new.txt jest równa bądź mniejsza od wartości z pliku act.txt wtedy zamykamy aktualizację i uruchamiamy prawidłową aplikację.

act
9
• Upon pressing T
Storyboard controls Next level
10
• Upon pressing N
Special conditions Execute external program Start.exe
Storyboard controls End Game


Teraz tworzymy drugi poziom a w nim dajemy rozszerzenia NOBU http, Unzip Object oraz File object a także licznik. Przejdźmy do kodu:

1
• Timer equals 00''-50
NOBU http DownBuf = 1024x1
URL "http://fano.victorygames.info/pl/teksty/artykuly/Fabryka_Gier/aktualizacja_wraz_ze_zmniejszonym_rozmiarem_plikow/new.zip => "new.zip"


Kiedy czas wynosi pół sekundy ustal bufor ściągania na 1024x1 i podajemy link do pliku oraz nazwę pod jaką ma być zapisany.

2
• Only one action when event loops
NOBU http Download Complate
Unzip Object Set zip archive to "new.zip
Set destination directory to ""
Unzip "*.*"


Rozpakowywujemy pliki do katalogu w którym znajduje się aktualizacja (powinna ona się znajdować w katalogu z naszą pracą).

3
• Always
Licznik Set Counter to downper ("NOBU http") / 10


Licznik ile procent zostało ściągniętych...

4
• Unzip Object Unzip it, OK?
Special conditions Execute external program Start.exe
File Object Delete the file "act.txt"
Rename the "new.txt" as "act.txt"
Delete the file "new.zip"
Storyboard controls End Game


Jeśli wszystko poszło jak trzeba zamknij aktualizację, uruchom właściwy program, usuń stary numer wersji, zmień nowy numer na aktualny (nazwa pliku txt) oraz usuń ściagnięty plik zip.

Podsumowanie

Jak widać możemy zaoszczędzić miejsce i czas używając dodatkowo 1 zdarzenia i 2 rozszerzeń, w porównaniu do innych wersji aktualizacji... Jest to moja wersja aktualizacji, wielkie dzięki misieksamgame za pomoc przy połapaniu się w NOBU http oraz Zip/Unzip Objects.
Ostatnio edytowane 4 kwietnia 2009, 21:56 przez lamberski
Komentarze
Fanotherpg @ 9 kwietnia 2009, 18:15
Stara FG, moje portfolio, Ślimaczek albo TDC nigdzie indziej ten art się nie pojawiał.
michalpol @ 9 kwietnia 2009, 18:08
moment...skądś to znam...chyba z jakiejś innej strony klikowej...tak to prawie ten sam tekst...
Dodaj komentarz
Kolor:   Rozmiar:

Twoja ocena
^ Do góry
© 2009 - 2012 Fabryka Gier. Publikowanie materiałów tylko za zgodą autorów.
Realizacja: Maciej Lamberski *-: