játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5444
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2519

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2188
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | Korábbi postok
[1] > 2 < [3] [4] [5] [6] [7] [8] [9]
MaNiAc - Szerkesztő | 1735 hsz       Online status #201666   2014.02.28 12:26 GMT+1 óra  
- Nem az Oracle alkotta. (Főleg nem a Dalvik-ot! ) Gondolom azt vágod, hogy a java csak egy specifikáció, aminek a több tucat implementációjából a Dalvik csak az egyik...

- Tehát azért szar a nyelv, mert nem kezelsz le minden hibát? Egészen pontosan milyen az az "általános exception"?

- A linked: [url]http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html#Socket(java.net.InetAddress, int)[/url] - arról, hogy a JF.Hu motorja nem eszi meg, nem a java tehet...

- Hogy lehet kideríteni? Hát, abban a hulladékhalmazban, amit írtatok, sehogy... de mondjuk egy
Kód:
catch (Exception e) {
  e.printStackTrace();
}

sokat segít...

- Az, hogy az NPE-t megpróbálod elkapni, de a sima Exceptiont (vagy akár Throwable-t!) nem, sok mindent elmond...

Verdikt: Egy Geri bőven elég - amihez nem értesz, azt ne fikázd. Köszi.

Ezt a hozzászólást MaNiAc módosította (2014.02.28 12:33 GMT+1 óra, ---)
Dare to imagine!
http://www.insaneidea.hu
   
Pretender - Törzstag | 2498 hsz       Online status #201665   2014.02.28 12:10 GMT+1 óra  
Segítséget kért tőlem egy ismerősöm, de így látatlanban nem tudtam elég jól behatárolni. Ráadásul nevetséges, amit ez a Java művel, de ebbe most ne menjünk bele.
Kód:
Log.i(LOG_TAG, "1");
try {
    client = new Socket(serverAddr, port);
} catch (IOException ex) {
} catch (SecurityException ex) {
} catch (IllegalArgumentException ex) {
} catch (NullPointerException  ex) {
}
Log.i(LOG_TAG, "2");

Ez androidos telefonján működik, egy trekstor surftab xiron 7.0 HD tableten viszont elszáll. A catch-ek belsejében szintén van valami logolás, hogy lehessen látni, hogy melyikbe fut bele. Hát... egyikbe sem.

A doksi azt állítja, hogy ezeket az expceionöket dobja. És nem, dob egy általános Exception-t, amit ha nem kapunk el, akkor hibával leáll a program.

Ebben a hulladékhalmazban, hogy lehet ilyenkor kideríteni, hogy mi baja van?

szerk.:
Látom, ez annyira szar, hogy még a linkjét sem lehet linkként beszúrni...
docs.oracle.com/javase/7/docs/api/java/net/Socket.html#Socket(java.net.InetAddress, int)
Köszönjük oracle, hogy megalkottad ezt a csodát!

   
MaNiAc - Szerkesztő | 1735 hsz       Online status #201663   2014.02.28 11:43 GMT+1 óra  
No, még egy kis hekkelés: betettem egy billentyűre várakozást a végére:

Kód:
System.gc() start
System.gc() end
Garbage collected: 9
Garbage collected: 8
Garbage collected: 7
Garbage collected: 6
Garbage collected: 5
Garbage collected: 2
Garbage collected: 1
Garbage collected: 0
Garbage collected: 4
Garbage collected: 3


Tehát a GC valóban lefut, aszinkron módon, valamikor random időben a System.gc() hívása után.

Androidon szinkron a futás?

Ezt a hozzászólást MaNiAc módosította (2014.02.28 11:50 GMT+1 óra, ---)
Dare to imagine!
http://www.insaneidea.hu
   
MaNiAc - Szerkesztő | 1735 hsz       Online status #201662   2014.02.28 11:37 GMT+1 óra  
No, nálam a progi végén takarított csak, legalábbis nagyon úgy tűnik, ráadásul ott se mindent... (Mondjuk nem értem, azt a hármat miért, a többit miért nem?) Ez az Oracle JVM7-es cucc kimenete:

Kód:
System.gc() start
System.gc() end
Garbage collected: 9
Garbage collected: 8
Garbage collected: 7


Nálad mi volt? Jól sejtem, ez volt?

Kód:
System.gc() start
Garbage collected: 9
Garbage collected: 8
Garbage collected: 7
Garbage collected: 6
Garbage collected: 5
Garbage collected: 4
Garbage collected: 3
Garbage collected: 2
Garbage collected: 1
Garbage collected: 0
System.gc() end
Dare to imagine!
http://www.insaneidea.hu
   
MaNiAc - Szerkesztő | 1735 hsz       Online status #201661   2014.02.28 11:28 GMT+1 óra  


Most mar engem is kivancsiva tett a dolog, kiprobalom! Ami keznel van: mezei Oracle JVM 7, meg majd otthon az OpenJDK JVM-je.
Dare to imagine!
http://www.insaneidea.hu
   
__z - Tag | 69 hsz       Online status #201654   2014.02.28 05:41 GMT+1 óra  
Mivel érdekelt, hogy a gyakorlat mennyire vág össze az általad leírtakkal, összedobtam egy kis próba kódrészletet:
Kód:
    static private class Garbage {
        static private int counter;
        private int[] data = new int[4096];
        private int id = counter++;
                   
        protected void finalize() {System.out.println("Garbage collected: " + id);}
    }   
   
    private Garbage[] trash;

    // valahol a kódban
    for (int index = (trash = new Garbage[10]).length; index-- != 0; ) trash[index] = new Garbage();   

    // valahol máshol
    trash = null;
    System.out.println("System.gc() start");
    System.gc();
    System.out.println("System.gc() end");

Android-on próbáltam, eszközön és emulátoron is, mindkét esetben takarított a GC. Persze tudom, hogy ez csak egy platform és azon belül is csak egy példa, de ha bárkinek van valami random java-s project-je, próbaképp beilleszthetné a fenti kódrészleteket, most már tényleg kíváncsi vagyok, hogy a gyakorlat kit igazol...

   
MaNiAc - Szerkesztő | 1735 hsz       Online status #201644   2014.02.27 17:00 GMT+1 óra  
Örökbecsünek nem mondanam, de attol meg igy tanitjak...

Nem mellesleg, olvasd el a top valaszt itt:

http://stackoverflow.com/questions/2414105/why-is-it-a-bad-practice-to-call-system-gc
Dare to imagine!
http://www.insaneidea.hu
   
__z - Tag | 69 hsz       Online status #201642   2014.02.27 16:22 GMT+1 óra  
Idézet
MaNiAc :
... csak nem ajánlott, mert kvázi értelmetlen.


Akko' írj egy mailt a keretrendszer fejlesztőinek, hogy bővítsék a metódus leírását eme örökbecsű mondattal.

   
MaNiAc - Szerkesztő | 1735 hsz       Online status #201639   2014.02.27 14:52 GMT+1 óra  
Mert nem deprecated, csak nem ajánlott, mert kvázi értelmetlen.
Dare to imagine!
http://www.insaneidea.hu
   
__z - Tag | 69 hsz       Online status #201637   2014.02.27 11:47 GMT+1 óra  
Idézet
M4 :
Előre lefoglalhatnád az összes szükséges memóriát a "konzervatívabb memóriahasználó" résznek.


Attól még ugyanúgy nekiállhat futni a szemétgyűjtő, viszont ha előtte meghívtad, jó eséllyel takarított, így ha el is indul, csak körbenéz, és befejezi a futását, nem akkor áll neki takarítani.
Egyébként azt eddig is tudtam, hogy a szemétgyűjtő nem determinisztikus, de azért szerintem mégsem véletlenül hívható a gc() metódus, csak van valami oka, hogy már elég régóta és még mindig része a nyelvnek, nem törölték, és nem jelölték deprecated-nek?

   
MaNiAc - Szerkesztő | 1735 hsz       Online status #201634   2014.02.27 10:22 GMT+1 óra  
Idézet
M4 :
Előre lefoglalhatnád az összes szükséges memóriát a "konzervatívabb memóriahasználó" résznek.

Simán! Tipikusan pl. Java & OpenGL3+ kombóhoz az az egyik ajánlás, hogy pl. ne bytearray-eket hozz létre és pusztíts el kilóra mehet közben (teljesen felizgatva ezzel a gc-t! ), hanem pl. csinálj egy poolt erre abból gazdálkodj.
Dare to imagine!
http://www.insaneidea.hu
   
M4 - Tag | 187 hsz       Online status #201632   2014.02.27 09:37 GMT+1 óra  
Előre lefoglalhatnád az összes szükséges memóriát a "konzervatívabb memóriahasználó" résznek.

   
__z - Tag | 69 hsz       Online status #201626   2014.02.27 01:12 GMT+1 óra  
Idézet
MaNiAc :
Ahogy Matzi írta is, a System.gc() nem force-ol semmit.


Ja, csak ez kb. tökmindegy, nem azért hívod, hogy mindenáron eltakarítsa a szemetet, hanem hogy biztos legyél benne, rendelkezésedre fog állni a kellő memória. Ha a vm úgy ítéli meg, hogy nem kell takarítania, hát lelke rajta. Asszem ezt hívják "best-effort"-nak, ahogy a gc() metódus leírásában is szerepel.
Idézet
MaNiAc :
Én még azt is hozzátenném, hogy régen rossz, ha manuálisan akarsz gc-t triggerelni. Van egyébként konkrét példád, hogy miért kellene gc-t hívni?


Van. Mielőtt egy kevésbé teljesítménykritikus, de "szemétgyártó" részről átlépsz egy teljesítmény-kritikusabb, de "konzervatívabb memóriahasználó" részre: így minimalizálod a valószínűségét annak, hogy az utóbbi futása közben álljon neki futni a szemétgyűjtő is.

   
MaNiAc - Szerkesztő | 1735 hsz       Online status #201622   2014.02.26 22:11 GMT+1 óra  
Ahogy Matzi írta is, a System.gc() nem force-ol semmit. Én még azt is hozzátenném, hogy régen rossz, ha manuálisan akarsz gc-t triggerelni. Van egyébként konkrét példád, hogy miért kellene gc-t hívni? Amúgy, ami a java memóriamodelljét illeti, by default minden meg van sharelve a threadek között, így logikus, hogy a GC mechanizmus sem válogat.
Dare to imagine!
http://www.insaneidea.hu
   
Matzi - Szerkesztő | 2519 hsz       Online status #201612   2014.02.26 19:43 GMT+1 óra  
Nem hiszem hogy szálanként lenne tároló, mivel a szemét sehová sem tartozik, a memória foglalások sem szálakhoz tartoznak.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
__z - Tag | 69 hsz       Online status #201606   2014.02.26 18:17 GMT+1 óra  
Idézet
Matzi :
Jellemzően a gc hívás csak egy jelzés, hogy szerinted gyűjteni kellene. Aztán a futtató környezet eldönti, hogy csinál e bármit, vagy sem.


És ez mind szép és jó is, csakhogy ezt már eddig is tudtam.
Idézet
Matzi :
Amúgy meg csak azt szedheti össze, amire nincs referencia, azokra meg egyik szálon sincs referencia, szóval teljesen mindegy.


És ez is teljesen igaz, csak épp nem válaszolja meg a kérdésem. Ha esetleg átfogalmazom, és úgy teszem fel: a létrejövő objektumok (a szemétgyűjtés szempontjából) egy közös tárolóba kerülnek (ez tűnik a valószínűbbnek, csak nem tudom biztosan), vagy szálanként külön tároló jön létre?

   
Matzi - Szerkesztő | 2519 hsz       Online status #201603   2014.02.26 17:49 GMT+1 óra  
Jellemzően a gc hívás csak egy jelzés, hogy szerinted gyűjteni kellene. Aztán a futtató környezet eldönti, hogy csinál e bármit, vagy sem. Amúgy meg csak azt szedheti össze, amire nincs referencia, azokra meg egyik szálon sincs referencia, szóval teljesen mindegy.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
__z - Tag | 69 hsz       Online status #201601   2014.02.26 17:32 GMT+1 óra  
Azt tudja valaki, hogy a GC hogyan működik egy többszálú programban? Pl. ha az egyik szálban meghívom a System.gc()-t, az az összes szálban keletkezett szemetet igyekszik eltakarítani, vagy szálanként külön kell meghívni?

   
MaNiAc - Szerkesztő | 1735 hsz       Online status #201596   2014.02.26 11:45 GMT+1 óra  
Btw, ha rajzolgatni akarsz, akkor se AWT-vel, mert kb. az a legalja... Milyen JDK-t használhatsz? Ha használható a 7-es JDK, akkor GUI-záshoz ott a lentebb linkelt javafx, piszok gyors és egyszerű, lehet, hogy azzal megúszod az OpenGL-t. Bár ez az egész attól függ persze, hogy mit kéne csinálnod...
Dare to imagine!
http://www.insaneidea.hu
   
MaNiAc - Szerkesztő | 1735 hsz       Online status #201595   2014.02.26 11:41 GMT+1 óra  
Pontosan - mindkettőt próbáltam, egyiket sem kell telepíteni, csak 2-3 jar, amit odacsapsz a projecthez és csókolom.

A JOGL btw szerintem skip - nagyon úgy nézett ki, hogy defacto standard lesz, de az LWJGL nagyon elhúzott benne fejlődésben...
Dare to imagine!
http://www.insaneidea.hu
   
Joga - Törzstag | 1791 hsz       Online status #201594   2014.02.26 10:37 GMT+1 óra  
jogl, lwjgl, ilyesmi kell hozzá, ezeket nem is kell telepíteni, csak hozzáadni a csomagot a projecthez, ha jól tudom

Elsőre ezt dobta a google:
http://www.land-of-kain.de/docs/jogl/
(ಠ ›ಠ) Stewie!

   
Elodin - Tag | 173 hsz       Online status #201591   2014.02.26 10:17 GMT+1 óra  
Java hogy hozható össze opengl-lel?

Vmi. külső cucc kell hozzá?
Annyi kéne amúgy, hogy og 1.2 -vel textúrákat töltögessünk, mert félek, hogy ha simán awt-vel rajzoltatok, az nagyon szaggatna.

Annyi, hogy labor gépeken kell futnia és fordulnia, oda pedig nem telepíthetek semmit szerintem.

   
MaNiAc - Szerkesztő | 1735 hsz       Online status #201587   2014.02.26 09:52 GMT+1 óra  
<trollmode>

No, jelentem belefutottam pár igazi looser, noskill vérpistibe, akik javat használnak 3D megjelenítésre... Biztos hülye mind, ez már az URL-ből is látszik...

http://worldwind.arc.nasa.gov/java/

</trollmode>
Dare to imagine!
http://www.insaneidea.hu
   
MaNiAc - Szerkesztő | 1735 hsz       Online status #201519   2014.02.22 21:39 GMT+1 óra  
Thread necrooooooo!

Na jo, viccet felreteve, egy kis erdekesseg, mert valaki emlitette, hogy gyalazatos tapasztalatai vannak a javas GUI-kkal. Nos, így néz ki mostanság egy javas GUI toolkit...

http://download.oracle.com/otndocs/products/javafx/2/samples/Ensemble/Ensemble.jnlp

(Java WebStart demó, legalább egy 7-es JRE kell neki!)
Dare to imagine!
http://www.insaneidea.hu
   
M4 - Tag | 187 hsz       Online status #198467   2013.10.21 12:36 GMT+1 óra  
Én így csináltam a canvas osztályomban:
Kód:
    public void INIT(){
        if(Main.isFullscreen()){
            scale = Math.min(getWidth()/(float)Screen.width, getHeight()/(float)Screen.height);
            translatex = (int)(getWidth()-Screen.width*scale)/2;
            translatey = (int)(getHeight()-Screen.height*scale)/2;
        }else{
            translatex = 0;
            translatey = 0;
        }
        createBufferStrategy(2);
        bufferStrategy = getBufferStrategy();
    }
   
    public void render(){
        Graphics2D g = null;
        try{
            g = (Graphics2D)bufferStrategy.getDrawGraphics();
            g.setColor(screen.backgroundColor());
            g.fillRect(0, 0, getWidth(), getHeight());
            g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
            g.setFont(new Font(Font.MONOSPACED, Font.BOLD, 20));
//            g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
            g.translate(translatex, translatey);
            g.scale(scale, scale);
            screen.paint(g);
            bufferStrategy.show();
        }finally{
            if(g!=null)
                g.dispose();
        }
    }

A screen.paint(g) a játék kirajzolása (menü vagy játék).

   
Elodin - Tag | 173 hsz       Online status #198465   2013.10.21 09:45 GMT+1 óra  
Idézet
Pretender :
Illetve az is kérdéses, hogy hogy rajzolod azt a négyszöget. Ha explicit megadtad, hogy 640x480 legyen, akkor az nem lesz nagyobb...



De ha a a felbontás 640*480, akkor ha megadom, hogy 640*480 legyen a négyszög, akkor kitölti a képet. Ha a felbontás 1920*1080, akkor meg nyilván nem.

Mivel primitívek mellett sprite is lesz a játékban, a teljesítmény miatt szeretném mondjuk egy 800*600-ra fixálni a felbontást. Ez teljes képernyővel nem akar összejönni.

   
Pretender - Törzstag | 2498 hsz       Online status #198463   2013.10.21 00:19 GMT+1 óra  
Ezeket nyilvánvalóan én is megtaláltam.
Közben feladtam, ott rohadjon meg a java, ahol van. Éljen a c#, gyönyörűen működik, azonnal...

   
zeller - Törzstag | 464 hsz       Online status #198460   2013.10.20 19:41 GMT+1 óra  
Pretender - Törzstag | 2498 hsz       Online status #198459   2013.10.20 16:43 GMT+1 óra  
Próbálkozott már azzal valaki, hogy egy swing controlnak c++ oldalon elkérje a HWND-t? Ez az AWT még egész jó lett volna, de sehogy se jó.

   
M4 - Tag | 187 hsz       Online status #198458   2013.10.20 15:24 GMT+1 óra  
Ha nem akarod átállítani a felbontást akkor teljes képernyőre rakás után használd a graphivs2d.scale() függvényt rajzoláskor hogy kitőltse az ablakot az általad megadott méret.

   
Pretender - Törzstag | 2498 hsz       Online status #198457   2013.10.20 14:37 GMT+1 óra  
Annyira sajnos nem vágom, de esetleg próbáld azt, hogy csinálsz egy JPanel-t BorderLayout-tal, és abba rakod bele. Akkor elvileg kihúzza maxra.
Illetve az is kérdéses, hogy hogy rajzolod azt a négyszöget. Ha explicit megadtad, hogy 640x480 legyen, akkor az nem lesz nagyobb...

Nekem pl. az átméretezés jól működik "GroupBox" esetén
Kód:
JPanel root = new JPanel(new BorderLayout());
JPanel toolsPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
toolsPanel.setBorder(BorderFactory.createTitledBorder("Toolbar"));
root.add(toolsPanel, BorderLayout.NORTH);

Nyilván, ha a teljesre kell, akkor nem kell a NORTH

   
Elodin - Tag | 173 hsz       Online status #198456   2013.10.20 13:33 GMT+1 óra  
Az lett volna a cél, de ez nem akar működni. A setSize(640,480)-al beállítom a méretét a framenek, majd ha utána megvan amit írtál, akkor ha rajzolok egy 640*480-as fekete négyszöget pl, akkor nem tölti ki az egész képet, csupán a bal felső sarokból valamennyit.

   
Pretender - Törzstag | 2498 hsz       Online status #198455   2013.10.20 13:18 GMT+1 óra  
Nem teljesen értem, hogy a mondatod végén leírtak a célok, vagy azt elkerülni? Ha az a cél, akkor maximized window kell neked, így valahogy:
Kód:
setExtendedState(getExtendedState() | JFrame.MAXIMIZED_BOTH);

   
Elodin - Tag | 173 hsz       Online status #198454   2013.10.20 11:21 GMT+1 óra  
JFrame-t hogy lehet teljes képernyőre varázsolni anélkül, hogy a felbontást a képernyő felbontására állítanám? Tehát hogy az 1920*1080-as monitoromra széthúzza a 800*600-as alkalmazást, és így a framen lévő panelra rajzolt 100*100-as kitöltött négyzet pofátlanul nagy legyen.

   
StrykerKKD - Tag | 30 hsz       Online status #197250   2013.09.12 12:21 GMT+1 óra  
Szeptember 16.-án coursera-n indul egy képzés Scala nyelvből ,ami a Java-ra építkezik.
Szerintem nagyon érdekes nyelv és nagyon sokan dicsérik ,mivel nagyon kifejező nyelv.
Akit érdekel a Szerver-Kliens programozás ,annak megér egy próbát ,mivel főleg erre használják.
Scala kurzus
   
varmolmobile - Tag | 5 hsz       Online status #195815   2013.07.05 03:17 GMT+1 óra  
Üdv!

A Varmol mobile startup fejlesztőket keres android és ios platformra akik szívesen dolgoznának szabadidejükben. Játékokat és programokat készítünk. Jelenleg 2 játék és 1 program van fejlesztés alatt. Ezenkívül már van egy kész programunk ami felkerült amazon app store-ba és hamarosan elérhető lesz google playen is. Jelenlegi csapatunk 8 fős. A következő tudású embereket keressük:

- Java,C/C++,Opengl programozókat
- Grafikusokat

Amennyiben szeretnél egy gyorsan fejlődő csapatban dolgozni akkor várjuk jelentkezésedet. Jelentkezni/érdeklődni üzenetben és a varmolmobile@gmail.com email címen lehet.

   
BLM - Tag | 1 hsz       Online status #195468   2013.06.26 21:13 GMT+1 óra  
Sziasztok!

Szeretném kérni a segítségetek egy Java3D-vel kapcsolatos problémámban...
Próbálok magamnak összerakni egy dupla klikkre működő Java3D jar fájlt, először azt hittem, hogy én csinálom meg szarul a jar-t, aztán láttam, hogy ezek se működnek...
Az alábbiak azt írják ki írják ki:
" A Java Exception has occurred. "
link1
link2

Amikor csináltam egy saját jar-t ugyan ez volt, de amikor belefordítom az importban használt classokat a jar-ba, azután nem ír ki semmi hibaüzenetet, de nem is csinál semmi mást...
(JDK 7.25-nél , és 6.29-nél )
Viszont parancssorból futtatva az összes tökéletesen működik:
java -jar xyz.jar
Próbáltam már régebbi JDK-val (1.5.0.1), akkor azt írja, hogy nem találja a main-t, pedig a manifestben meg van hivatkozva...
Melette Java3D 1.5.1, és 1.5.2-vel próbálkoztam eddig...

Teljes forráskód
Úgy vettem észre, ha ez a sor lefut, akkor nem csinál semmit(ha kommentelem működik) /27. sor/:
Kód:
GraphicsConfiguration config = getPreferredConfiguration();


Amely sor ezt a függvényt hívja/100-105. sor/:
Kód:
public static java.awt.GraphicsConfiguration getPreferredConfiguration() {
// kerjük le a grafikus eszközt
GraphicsDevice gDevice = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
// adjuk vissza a legjobb konfigurációt
        return gDevice.getBestConfiguration(new GraphicsConfigTemplate3D());
}


Viszont elképzelhető, hogy valahol nullpointerexceptiont kap (de akkor miért nem jelzi), mert ha átírom, és így hívom meg, akkor is ugyan úgy nem csinál semmit:

Kód:
[code]GraphicsConfiguration config = null;
[/code]

Ha valaki tudna segíteni megköszönném!

Ezt a hozzászólást BLM módosította (2013.06.26 21:44 GMT+1 óra, ---)

   
borsi - Tag | 180 hsz       Online status #193501   2013.04.17 15:32 GMT+1 óra  

   
kernel_panic - Tag | 117 hsz       Online status #193491   2013.04.17 12:41 GMT+1 óra  
Egy formátumokkal kapcsolatos kérdés: ha szeretnék megadni valami orbitális nagy számot (ahol csak a nagyság a szignifikáns) meg lehet ezt tenni valami tömör formában, pl: 10^24, vagy ehhez hasonlóan?

   
full3nzo - Tag | 11 hsz       Online status #193122   2013.04.04 09:04 GMT+1 óra  
Távolról szeretnénk futtatni! De részletezném, hogy ne legyen félreértés. Egy Java alkalmazást szeretnénk úgy futtatni, hogy egy weboldalon legyen indítható. Jelenleg egy tankönyv egyik példa programjával próbálkozunk a lehető legkisebb hibalehetőség miatt, de nem vagyunk nagyon tapasztaltak Jávában.
Egy webszerver kellene ami kezeli az apachot szerintem.

Van egy kb. 50% készültségű játékunk és szeretnénk felmérni, hogy milyen lehetőségeket tudunk kihasználni, amire elkészülünk - ez lenne az egyik...

Ezt a hozzászólást full3nzo módosította (2013.04.04 09:18 GMT+1 óra, ---)

   
M4 - Tag | 187 hsz       Online status #193118   2013.04.04 08:54 GMT+1 óra  
A jnlp kliensen fut.Vagy távolról akarjátok futtatni?

   
full3nzo - Tag | 11 hsz       Online status #193117   2013.04.04 08:39 GMT+1 óra  
Sziasztok!

Lenne még egy kérdésem. Valaki tudna segíteni abban, hogy hol találok egy ingyen használható Apache webkiszolgálót? Egy barátommal szeretnénk futtatni ott egy *.jnlp fájlt - sajnos eddig nem jártunk sikerrel, mert egyetlen kiszolgáló sem volt képes erre.

   
Matzi - Szerkesztő | 2519 hsz       Online status #192819   2013.03.28 17:15 GMT+1 óra  
A grafika tipikusan egy szálon fut, nem párhuzamosítható. Szóval valószínűleg nem.

(Ha kétszer is hozzászólsz gyors egymás utánban, akkor használd a szerkesztés funkciót)
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
full3nzo - Tag | 11 hsz       Online status #192817   2013.03.28 16:54 GMT+1 óra  
Köszönöm a gyors választ! És programszálakkal megoldható egy összetettebb grafikus felület lényegesen gyorsabb megjelenítése?

Egyébként a minecraft egészen meggyőző számomra ebből a szempontból...

Ezt a hozzászólást Matzi módosította (2013.03.28 17:14 GMT+1 óra, ---)

   
Matzi - Szerkesztő | 2519 hsz       Online status #192811   2013.03.28 16:06 GMT+1 óra  
Nem izometrikus ugyan, de ott a minecraft.
Ettől függetlenül a java nem a legalkalmasabb teljesítmény igényes feladatokra. Főleg 3D grafikára. Persze a limitált teljesítményből is lehet jó dolgokat kihozni.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
full3nzo - Tag | 11 hsz       Online status #192809   2013.03.28 15:26 GMT+1 óra  
Sziasztok!

Tud valaki egy jónak, szépnek és látványosnak mondható - izometrikus Java alkalmazást mutatni pl. youtubon? Mielőtt elküldenétek (pl. sörért ), - megindokolnám a kérésem. Egy barátom teljesen szkeptikus Java tekintetében, főleg sebesség kritikus szempontok dominálnak nála elsődlegesen. így ez "élet/halál" kérdése lehet...
Megköszönném, ha egyéb Java erényeket is felsorolnátok! lehet, hogy utoljára írok... .

üdv.

   
proof88 - Törzstag | 528 hsz       Online status #190227   2013.01.11 23:58 GMT+1 óra  
zeller - Törzstag | 464 hsz       Online status #190199   2013.01.11 13:20 GMT+1 óra  
Helyen valo.
1 ki a retek akar meg kulon telepiteni javat? vagy .net fw 2.0-t... Azt is utaltam.
2 egy random jre-n barmilyen uj bug bejohet, vagy mas megvaltozhat.
Szoval ha komoly termeket akarsz kiadni virtualizalt platformon, akkor a virutalis gepet melle kellene csomagolni. Sztem

   
kernel_panic - Tag | 117 hsz       Online status #190150   2013.01.10 15:24 GMT+1 óra  
Nemrégiben próbáltam a Revenge of the Titans demóját, és egy érdekes dolog szemet szúrt: a linux-os verzió a "szokásos" módon működik (a java keretrendszert megjelöli függőségként), a win-esnél viszont (legalábbis úgy tűnik) nem kell azt telepíteni, a játékhoz van egy "keret", ami egybe van vele csomagolva. Persze ez java-nál nem túl szép megoldás, viszont a gyakorlatban lehetnek előnyei: egyik oldalon a játékon kívül nem kell mást telepíteni, csak az említett keretet kell mindig egybecsomagolni vele, másik oldalon a játék kódja (feltehetőleg) ugyanaz marad, mintha "normálisan", az előtelepített jvm alatt futna.
Nektek mi a véleményetek erről a megoldásról?

   
LugaidVandroiy - Törzstag | 504 hsz       Online status #189324   2012.12.07 22:03 GMT+1 óra  
@Thrall:
less rá a JOGL-re, az eléggé platformfüggetlen.

Más. Szeretnék csinálni egy master szervert egy készülő játékhoz. A szerver megy rendesen ahogy kell neki. x időközönként pingeli a hostot, hogy lássa, hogy él-e még. Itt van a problémám. Localhoston megkapja szépen a pong üzit, de neten a host a pinget sem kapja meg.

Kód:
while(_keepAlive){
try{
_message = "";
_data = "";
_type = CPacketType.PACKET_INVALID;
_raw = new byte[512];

_packet = new DatagramPacket(_raw, _raw.length);
_socket.receive(_packet); //waits 'till it receives something
//CDebug.logActivity(false, new String(_packet.getData()));

_message = new String(_packet.getData()).trim();
_data = _message.substring(2, _message.length());
_type = CProtocol.getPacketType(Integer.parseInt(_message.substring(0, 1)));

if (_type == CPacketType.PACKET_HOST_REQ){
...
}
else if(_type == CPacketType.PACKET_PONG){
_hosts.get(Integer.parseInt(_message.substring(1))).setLatency(System.currentTimeMillis());
}
}
catch(IOException e){ CDebug.log(TAG, "Could not read packet data!"); }
}


A HB üzik cseréje egy külön szálon fut.

Kód:
@Override
public void run(){
while(_connected){
if (System.currentTimeMillis() - _lasthb >= CPreferences.HBINTERVAL){
try{
DatagramPacket packet = new DatagramPacket(new byte[255], 254);
DatagramSocket socket = new DatagramSocket();

packet.setAddress(_address);
packet.setPort(_port);
packet.setData(CProtocol.createPackage(CPacketType.PACKET_PING, ""));

socket.send(packet);


CServer.sendPackage(packet, CPacketType.PACKET_PING, "");

CDebug.logActivity(true, "Sending HB packet to host " + _address.getHostAddress() + "...");
_lasthb = System.currentTimeMillis();
}catch(IOException e){ CDebug.log(TAG, e.getMessage()); }

}
}

CDebug.log(TAG, "Game " + _id + " lived for " + (System.currentTimeMillis() - _time));
}


Mit cseszek el, vagy mire kellene figyelni? Amikor az első handshake megtörténik (req_host -> acknowledged), akkor minden jól megy, utána nem. A hb-ért felelős szálat akkor indítom, amikor a host_req megtörténik


Edit: a host szálat természetesen a start() fgv-el indítom el, hogy ne blokkolja a hívó szálat.
Edit2: megvan a ludas, és müködik is így: az eredeti DatagramSocketet kellett használnom, és egy teljesen új DatagramPacketet. Ilyenkor nagyon hülyének érzem magam.

Ezt a hozzászólást LugaidVandroiy módosította (2012.12.07 23:31 GMT+1 óra, ---)

   
Frissebbek | Korábbi postok
[1] > 2 < [3] [4] [5] [6] [7] [8] [9]