-
Anonim
Witam serdecznie!
Musze napisac gre w pilke nozna w javie - cos a la sensible world of soccer. Oczywisci nie musze bawic sie w animowanych pilkarzy itp. Mam w zwiazku z tym pytanie - czy lepiej wgrac boisko i pilkarzy (w formie kolek - jak w football manager) z pliku *.jpg, czy tez moze kazac javie rysowac te obiekty? Ktora z opcji bedzie plynniej chodzila? -
Dzemus
Płynnie Ci będą chodziły obydwa :> A ja bym wgrywał z pliku (i nie z JPEG tylko z PNG), bo to zawsze będzie ładniej wyglądać - zrobisz sobie cieniowanie tych kółeczek, jakieś bajerki.. Może nawet flagi jak w kapslach (grałeś w kapslowych piłkarzy kiedyś?:P)... -
Anonim
Wielkie dzieki. W kapslowe gralem tylko wyscigi;). Rozumiem ze murawe tez zrobic jako png? -
Dzemus
Aha.. a to PNG to po to, żebyś mógł z alphą tekstury dać (półprzezroczyste) - wtedy piłkarze mogą rzucać cienie, możesz sobie półprzezroczyte menu zrobić itp. <- generalnie zawsze wychodzę z założenia, że jak się da parę wodotrysków do projektu to oceniający przychylniej patrzą:P -
-
Jaggernod
no zalezy. A piszesz w J2SE czy ME? Bo jak w se to raczej nie musisz sie za bardzo przejmowac optymalizacja bo roznica na normalnych PCtach bedzie niewielka. Ale najlepiej wyrysowac samemu pilkarza i stworzyc z niego Imege'a i potem tylko go odrysowtwac. -
Anonim
Tylko chcialbym na kazdym pilkarzu umiescic numer gracza i w zwiazku z tym chyba musialbym stworzyc osobny plik png dla kazdego gracza. -
Dzemus
Nie. Ładujesz sobie "tło" piłkarza oddzielnie, czcionkę ładujesz oddzielnie i już wewnątrz programu sobie tworzysz kopie obrazków piłkarza, jednocześnie wyrysowując na nich odpowiednie cyferki (z wykorzystaniem czcionki).
Chociaż ja bym w ogóle w "real time" wyrysowywał te numerki, bo narzut czasu będzie minimalny.. A, że nie chcesz robić animacji to i tak optymalizacja pod tym kątem nie ma sensu:P -
Dzemus
A w ogóle jak będziesz miał różne flagi, to nie zamieszczaj ich w osobnych plikach, tylko w jednym obok siebie, a później tnij wewnątrz programu - nie ma sensu kazać maszynie tyle razy odwoływać się do systemu plików:]
Przykład (w pliku w postaci tablicy mam zapisane teksturki 5 przycisków - w każdym wierszu są 4 obrazki: up, rollover, pressed, disabled):
Image buttonsImage = loadImage("przyciskiakcji.png" );
ImageFilter tempFilter;
for (int i=0; i<5; i++)
for(int j=0; j<4; j++)
{
tempFilter = new CropImageFilter(j*30,i*30, 30, 30);
buttons[j]=new ImageIcon(applet.createImage(n ew FilteredImageSource(buttonsIma ge.getSource(),tempFilter)));
}
// oczywiście powinieneś skorzystać teraz z MediaTrackera - ja go wyciąłem dla przejrzystości kodu:P -
Anonim
Dzieki za pomoc - jak bede mial wiecej pytan, to uderze na priv, ok? Nie pozostaje mi nic jak usiasc do komputera i pisac, bo deadline juz w czwartek, a ja jeszcze nie zaczalem;).
Pozdrawiam -
Dzemus
-
Adept
>Dzemus napisał
>A w ogóle jak będziesz miał różne
>flagi, to nie zamieszczaj ich w osobnych plikach, tylko w
>jednym obok siebie, a później tnij wewnątrz
>programu - nie ma sensu kazać maszynie tyle razy
>odwoływać się do systemu plików:]
ciekawe rozwiązanie napewno optymalizuje kod.. :)
-
spec
-
Adept
a czy ja powiedziałem, ze nie?? po prostu ja tego nie używałem i raczej narazie nie będe używał.. zw względu na niepotrzebe optymalizacji kodu za to potrzebe wklejania obrazków do jednego.
po prostu napisałem ze ciekawe.. no ale po prostu niektórzy musza się czepiać :) -
spec
a mozna cokolwiek optymalizowac w javie... nie ma czego, nie ma po co, i nie ma jak; D
-
Dzemus
Nie no.. Optymalizować można zawsze:] Jak wiesz, że ZAWSZE będziesz wstawiał do 4 elementowej tablicy kolejne cyfry to szybciej pójdzie:
tab[0]=0;
tab[1]=1;
tabl[2]=2;
tabl[3]=3;
niż:
for(int i=0; i<4; ++i)
tab=i;
Fakt, że to jest różnica kilku nanosekund... Ale jak się takich rzeczy trochę nazbiera to można optymalizować.
A normalniejszy przykład jest właśnie z tymi sprite'ami.. Można wczytać 1000 plików oddzielnie, a można wczytać sobie jeden plik i go pociąć na 1000 kawałeczków już wewnątrz programu - wiadomo, że przy małych plikach czas otwarcia i udostępnienia pliku przez system operacyjny jest porównywalny z czasem odczytania tego pliku, więc w tym przypadku optymalizacja jest dość istotna.. Szczególnie jak sobie robimy applet - w jarze są trzymane informacje o wszystkich plikach - każdy plik to nazwa i ładnych paredziesiąt bajtów informacji o tym pliku. Jakby to pomnożyć przez ten przykładowy 1000 to nam na strasznej głupocie jar "puchnie"... Oj, takie przykłady można w kółko podawać - wiadomo, że nie będzie to tak efektywna optymalizacja jak w C, gdzie można próbować przewidywać jak procek będzie przewidywał np. skoki i robić tak żeby mu było łatwiej:P (czytaj: nie robić nigdy
for(int i=..;..;..)
if (i%2)
{
}
else
{
})
A zresztą.. Nieważne - mam dzisiaj żal, bo się trochę nie wyrobiłem na laborce z WinAPI, bo się właśnie za bardzo babrałem w "ładny kod w C" :P A, że zapomniałem, że jednak w C trzeba troszkę więcej naklepać niż w Javie to i czas sobie źle rozłożyłem..:P -
spec
>spec napisał
>a mozna cokolwiek optymalizowac w javie... nie ma czego, nie
>ma po co, i nie ma jak; D
>
nie ma czego - java sie nadaje tylko do biznesu.
nie ma po co - java ma wystarczajaca biblioteke standardowa
nie ma jak - java nie zapewnia mechanizmow niskopoziomowych
co do przytoczonego przykladu, to bardzo zly przyklad.
w javie powinno sie optymalizowac na etapie podejscia do problemu.
jedyny problem jest taki ze nikt nie bedzie pisal w javie np. powaznej gry czy programu do liczenia mechaniki kwantowej bo nawet przy wzorowym podejsciu jest to skazane na niepowodzenie.
ja jednak lubie sobie pojezdzic po pamieci wskaznikiami. zrobic templata, tudziez serializowac strukurke jednym fwritem.
no ale wiadomo, jest to okupione wysilkiem.
i tak, C++ umiera tak jak 20 lat temu fortran.
wlasnie za sprawa kodu zarzadzalnego.
nieststy w tej dziedzinie C++ to juz wystarczajacy stopien ulatwienia, i wszystko co bylo przed C++ bylo programowaniem ale bardzo nieporecznym, a wszystko co jest teraz, przestaje byc.
nie jestem skrajnym radykalem w tych sprawach, ale lubie wtracic zlosliwe uwagi tak samo na temat Javy jak i .Neta. w koncu po to sa fora, (sorki znowu za oftop, mam manie)
i bogu dziekuje ze pisze C++ a nie w fortranie; > albo javie...
to porownanie mialo na celu pokazanie jak wazny jest zloty srodek,(tu jakby fortran troszke ciazy w lewa strone, ale to nie wazne)
zaraz posypia sie flamy w stylu NTG mf...(pamietaj chlopcze ze z javy sie nie przesiadziesz sie tak latwo na C++, a ja to robie z latwoscia w odwrotna strone..)
ale w koncu to Wasze grono i dotyczy javy a nie czego innego.
i jak to kiedys Adept stwierdzil: C++ w ogole sie nie nadaje do programowania.
mala inkwizycja.
-
Dzemus
Z bólem serca <U><B>niestety</B></U> muszę się z Tobą zgodzić... Ale i tak się przyczepię:P "zrobic templata" <- j2se5.0 :] -
spec
no nie zupelnie.
to nawet sie nie nazywa template tylko typ generyczny.
i znowu jest to robione na etapie dzialania programu.
w C++ mozesz sobie zakodowac templetami rekurencyjne obliczanie silni i _kompilator_ Ci to rozwinie i obliczy.(wielkosc kodu wzrosnie dramtatycznie dla duzych wartosci n, ale liniowo)
nie mowie ze makra i templaty sa piekne, ale akurat polaczenie statycznego wiazania z poznym wiazaniem (polimorfizm) w _programie_ (bo nie za bardzo sie to integruje jak zauwazylem w obrebie jednej klasy) daje Ci cos czego w innych jezykach na prozno szukac...
- Przeglądaj grona w kategorii Internet i Komputery
- Przeglądaj grona w okolicy Warszawa
- Załóż własne grono tematyczne
- Zostań moderatorem
Podobne Tematy
|
|
Wszystko co związane z programowaniem w Java (J2EE, JSP, JDBC, itd) test
Miejsca grona (1)
-
Kino Luna ul. Marszałkowska, Warszawa
www.kinoluna.pl kino.luna@maxfilm.com.pl 22 621 78 28
- Dodaj miejsce

