Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: OOP v Javě

Aktivity
Avatar
Kit
Tvůrce
Avatar
Kit:29.4.2013 14:53

Během víkendu jsem shlédl pár tutoriálů na tvorbu RPG v Javě. Byl jsem silně znechucen z neobjektového přístupu autorů. Třídy plné "public", o kolekcích zřejmě autoři neslyšeli, obrázky v jedné třídě (místo u objektů), modifikace proměnných v jiných objektech apod.

Ano, výsledné programy jsou funkční, ale výsledný program působí velmi zmateně. Přidání dalších elementů do hry je pak dost komplikované, protože se kvůli jedné změně musí modifikovat příliš mnoho tříd.

To jsou všechny videotutoriály na webu tak špatné? Nebo jen mám smůlu při hledání? Máte někdo tip na něco kvalitního?

Odpovědět
29.4.2013 14:53
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:29.4.2013 14:59

Bohužel, v Javě je na webu strašně moc balastu, někdy najdu 100 řádkový kód a potom na to samé jinde 3 řádky. K čemu sháníš tutoriály? RPG hra není nic, co by nebylo ve tvých silách napsat a navrhnout na koleni a bude to určitě lépe, než bys našel.

Nahoru Odpovědět
29.4.2013 14:59
You are the greatest project you will ever work on.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:29.4.2013 15:27

Konkrétně k ničemu. Jen chci tu Javu na něčem trénovat. Práci s textem sice už zvládám bravurně, ale s grafikou ještě tolik zkušeností nemám. Do OpenGL zatím jít nechci. Budu rád, když nejprve zvládnu 2D. Nejlépe se takové věci učí na blbostech a RPG se mi k tomuto účelu hodí právě pro svou jednoduchost.

To víš, že si už píšu vlastní podle svých pravidel, ale někde se musím dočíst nebo dokoukat, jak se příslušné knihovny používají.

Videotutoriál má i výhodu, že se zároveň trochu cvičím v Angličtině.

Nahoru Odpovědět
29.4.2013 15:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:3.5.2013 9:07

Tenkrát jsi psal o tom pseudo 3D enginu v Javě, bude? :P

Nahoru Odpovědět
3.5.2013 9:07
You are the greatest project you will ever work on.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:3.5.2013 9:12

Co jsi myslel tím
"obrázky v jedné třídě (místo u objektů)"?
Jakože bys chtěl uchovávat obrázky (textury) přímo u těch objektů?

Nahoru Odpovědět
3.5.2013 9:12
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:4.5.2013 9:29

Určitě bude, jen se k tomu musím nejprve dopracovat.

Nahoru Odpovědět
4.5.2013 9:29
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:4.5.2013 9:30

Samozřejmě. Děláš to snad jinak?

Nahoru Odpovědět
4.5.2013 9:30
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:4.5.2013 9:51

Takže když budeš mít na kreslení třeba 50 stejných stromů, tak každý strom u sebe bude mít nakopírovanou texturu stromu? Tomu říkám efektivní práce s pamětí :)
Nehledě na to, že to bude pomalé kvůli velkému množství draw callů (pro každý objekt se musí změnit textura, ze které se kreslí, což má VELKOU režii).

Ano, dělám to úplně jinak, mám nějakého správce textur a objekt jen má u sebe uloženo, jakou texturu z toho správce textur kreslí.

A protože střídání textur na grafické kartě hrozně brzdí kreslení, tak mám dokonce jen pár velkých textur (kde každá obsahuje spoustu menších) - třeba jednu na terén, jednu na objekty, jednu na GUI a objekt má u sebe kromě jména textury i pozici obrázku v textuře.

Rozdíl v rychlosti když kreslíš obrázky z jedné textury nebo pro každý objekt jinou texturu je klidně 50ti násobek.

Nahoru Odpovědět
4.5.2013 9:51
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:4.5.2013 9:59

Však v tom objektu stromu je obrázek stromu jen zakomponován. Fyzicky v něm není, protože obrázek stromu je samostatný objekt. Tvé použití to nevylučuje.

Nahoru Odpovědět
4.5.2013 9:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:4.5.2013 10:07

Nevím teď úplně přesně, jak to myslíš, asi by to chtělo příklad, abysme se náhodou nebavili jeden o koze a druhý o voze :).

Stejně ty obrázky budeš muset mít v nějaké kolekci mimo ty objekty - aby jsi mohl třeba do nově vzniklého stromu ten obrázek přiřadit.

Nahoru Odpovědět
4.5.2013 10:07
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:4.5.2013 10:13

Vypadá to tak. Rozhodně nebudu 50× načítat obrázek stromu, abych vytvořil 50 objektů stromů, ale konstruktoru předám jen referenci.

Nahoru Odpovědět
4.5.2013 10:13
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.