TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach

FEI archív 2011/2012 => 2. ročník => Topic started by: Domino_666 on 24.10.2011, 16:04:53

Title: OOP - "spešl zadanie"
Post by: Domino_666 on 24.10.2011, 16:04:53
Asi by bolo vhodné spraviť samostatný topic pre tých, čo máme to špeciálne zadanie. Nech sa to veľmi nepletie s tou textovkou...  :) Dávajte aj tu prípadne nejaké materiály k tomu, napr. to čo vygooglite a nebude na moodli a tak...
Title: Re: OOP - "spešl zadanie"
Post by: Agamemnon on 24.10.2011, 16:16:48
prv daj popis... potom mozno budem vediet aj pomoct :)
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 29.10.2011, 17:47:36
uz su nikde dokumenty k tomu?
Title: Re: OOP - "spešl zadanie"
Post by: depeha on 29.10.2011, 18:56:17
Z tutov (http://slick.cokeandcode.com/wiki/doku.php?id=tutorials) na oficiálnych stránkach odporúčam pozrieť freeaks' tut (http://slick.cokeandcode.com/wiki/doku.php?id=freeaks_tutorials)

Pre linuxákov pravdepodobne nebude fungovať čisto len lwjgl.jar (nemusíte sťahovať lwjgl osobitne z ofiko stránkok) .  Spolu so slick.jar a lwjgl.jar pridajte aj súbory z rozbaleného natives-linux.jar (súbory .so). V Referenced Libraries nájdite lwjgl.jar -> properties -> native library -> workspace -> priečinok lib v projekte. Potom by to malo fičať. (BTW je to pre Eclipse, niečo podobné bude treba asi aj v netbense...)
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 30.10.2011, 19:20:43
skusil som spravit navod (http://oktava.revuca.net/B2/ZS2/oop/Navod_na_Slick.pdf) ako rozbehat Slick pod NetBeans. Hadam pomoze.


Title: Re: OOP - "spešl zadanie"
Post by: mino on 31.10.2011, 03:52:06
Uz existuju aj nejake ofic. materialy od Binasa? Zatial som nic nenasiel a uz nefunguje ani linky na stare materialy pre textovku  ;D
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 31.10.2011, 04:03:27
ja som stale nic nenasiel
Title: Re: OOP - "spešl zadanie"
Post by: mino on 31.10.2011, 06:12:51
Cici, diky za ten navod, bezi mi to pod Linuxom...  :ropebanana:
Nechapem, com je to take zlozite - pripojit dajaku kniznicu, ale hlavne ze mi to ide... :D
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 06.11.2011, 00:24:45
prakticka rada: nastavte si max FPS na 60 - sprava sa to trochu inak. Mal som nenastavene (cize cca 3000 FPS to bezalo) a pri pohybe dolava / doprava chodil moc ryhclo. (ked som sa to snazil vyriesit robilo to zas ine problemy - dostal som sa do bodu ked uz komp nezvladal tolko FLPOSov :D )

Code: [Select]
public static void main(String[] args) throws SlickException{
       
        AppGameContainer app = new AppGameContainer(new SlickFred());
        app.setDisplayMode(640, 480, false); //screen resolution width, height, bool fullscreen
        app.setTargetFrameRate(60);
        app.start();
    }
Title: Re: OOP - "spešl zadanie"
Post by: Agamemnon on 06.11.2011, 01:20:59
rýchly odhad... to, čo popisuješ sa ti potom prejaví opačne, ak budeš mať málo fps - budeš sa pohybovať pomaly... na to sú patterny, ako sa to rieši... súvisí to so spracovaním akcie, ktoré by malo byť nezávislé na vykresľovaní (prípadne na prenose cez sieť a pod.) - ak som teda dobre pochopil, o čom hovoríš... :)
Title: Re: OOP - "spešl zadanie"
Post by: Mitwoc on 06.11.2011, 02:28:32
ano... skôr by som to riesil tymto : http://slick.cokeandcode.com/wiki/doku.php?id=controlling_game_updates (http://slick.cokeandcode.com/wiki/doku.php?id=controlling_game_updates)
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 06.11.2011, 05:48:19
máte pravdu  :embarassed: to co som popisal to riesi
Title: Re: OOP - "spešl zadanie"
Post by: mirek on 14.11.2011, 12:49:36
chalani prepacte, ale dnes cviko nebude. vyskytli sa iste zdravotne komplikacie (nie moje), vdaka ktorym utekat inde.
Title: Re: OOP - "spešl zadanie"
Post by: mino on 30.11.2011, 07:32:43
Mate niekto opravenu "Blesk #6"? Myslim, ze to mam spravene dobre, ale stale mi tam svieti 0  >:(
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 30.11.2011, 18:24:39
Mate niekto opravenu "Blesk #6"? Myslim, ze to mam spravene dobre, ale stale mi tam svieti 0  >:(

"Blesk #6" ešte nie je opravená
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 04.12.2011, 05:45:47
čo máme mať zrobené na ďalšie cviko? ja som pochopil takto:
- prerobiť štruktúru
- vytvoriť nepriateľov
- vytvoriť mapu -ale tú ešte netreba implementovať

ako to má reálne byť?  :D
Title: Re: OOP - "spešl zadanie"
Post by: n3r0 on 05.12.2011, 22:42:47
by ma zaujmalo ako priradit nejakemu predmetu jedinecne meno .. osobne som skusil spravit getName co vrati String nejaky lenze ako nasledne ten string priradit nejakej instacii typu napr Item ci Star ? ..
Title: Re: OOP - "spešl zadanie"
Post by: Agamemnon on 05.12.2011, 22:55:05
by ma zaujmalo ako priradit nejakemu predmetu jedinecne meno .. osobne som skusil spravit getName co vrati String nejaky lenze ako nasledne ten string priradit nejakej instacii typu napr Item ci Star ? ..

netuším, o čo konkrétne ide... ale skúsim pár tipov:
- priraď jedinečné meno v konštruktore (existujú také veci ako napr. Guid vo windowse... určite bude aj nejaká javovská verzia toho, a určite bude aj nejaká classa, ktorá generuje unikátne stringy)
- v konštruktore, volaním nejakej statickej triedy (alebo niečoho podobného), ktorá sa postará o to, aby si vždy dostal jedinečné meno
- vytvor setter... setUid(string) a priraď pomocou tohto...

ak je to úplne od veci, ignoruj :) nemám detaily, a píšem to len podľa toho, čo si napísal vo svojom príspevku :)
Title: Re: OOP - "spešl zadanie"
Post by: mino on 05.12.2011, 23:36:32
Podla mna je to jedinecne meno celkovo odveci... Na co potrebuju mat predmety jedinecne meno?  :whacko:
Title: Re: OOP - "spešl zadanie"
Post by: n3r0 on 06.12.2011, 00:05:13
no vies keby ze mas jeden predmet jedneho typu tak nieje problem ale definovat meno kazdej hviezdy ked ich bude 1000 hej trosku som to prehnal nie je prilis efektivne ..

osobne mam namysli nieco take ... public String getName(){ ak sa jedna o hviezdu ... -> return "hviezda" + toString(++i); } lenze nasledne v konstruktore hviezdy je Star { toto_animacia_hviezdy = nejake obrazky } ako spravit aby ten getName urobil meno pre toto_animacia_hviezdy ; zeby toto_animacia_hviezdy malo meno napr. star1 ...
Title: Re: OOP - "spešl zadanie"
Post by: Saren on 06.12.2011, 02:27:11
metodu getName() mas v ktorej triede?

osobne mam namysli nieco take ... public String getName(){ ak sa jedna o hviezdu ... -> return "hviezda" + toString(++i); }
Title: Re: OOP - "spešl zadanie"
Post by: sulo on 06.12.2011, 03:07:57
Ak som správne pochopil - chceš, aby každá inštancia danej triedy vrátila iný názov? Potom môžeš použiť napr. statickú premennú ako počítadlo.
Code: [Select]
class Trieda {
 private static int counter = 1;
 private String name;

 public Trieda() {
  name = "Trieda" + (counter++);
 }

 public String getName() {
  return name;
 }
}
Title: Re: OOP - "spešl zadanie"
Post by: n3r0 on 06.12.2011, 04:29:18
sulo ...matus pocuj :)  no take ako si napisal ty by bola nanba aby som nevedel .. ee inak som to myslel .. metoda getName vracia string .. napr star_1,star_2,... vrati stale vecsie string+cislo na konci po zavolani .. ale podstata toho vsetkeho :D .. ze :D ..  Animation XXX; mam instanciu napr XXX = new Animation(...,...,...,nejake parametre...) a chcem aby ta instacia sa volala podla getName .. cize hcem aby kazda instancia mala meno podla getName .. no je problem pouzit nieco take ze_nejaky_string_vrateny_getName() = new Animation(...,...,...,nejake parametre...); proste ine typy  ... ja som uz prisiel aj na iny sposob ale toto mi pripda na kratsi kod ..
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 06.12.2011, 04:36:26
ale sak naco chces aby sa kazda animacia inak volala? ved pre vsetky instancie sa ta animacia moze volat rovnako
Title: Re: OOP - "spešl zadanie"
Post by: n3r0 on 06.12.2011, 04:46:59
ale sak naco chces aby sa kazda animacia inak volala? ved pre vsetky instancie sa ta animacia moze volat rovnako

tak mi porad ako riesis render() ... a nasledne ak dojde ku kolizii ktoru hviezdu ako zmazes??  ked sa vsetky budu rovnat rovnako  .. neviem ked pisem zle tak sorry ale nemam sa nikoho ineho spytat ..
Title: Re: OOP - "spešl zadanie"
Post by: Agamemnon on 06.12.2011, 05:27:53
pre pokoj duše povedzme, že to sa nedá... tak s tým pracuj, že to nejde urobiť a vymysli si niečo lepšie... maximálne tak to môžeš použiť ako kľúče do dictionary/hashtable, kde hodnoty budú objekty... za normálnych okolností nič lepšie neurobíš...
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 06.12.2011, 14:55:59
no ja to riešim tak že každý predmet má current animation a v konštruktore objektu mám že sa objekt pridá do ArrayListu. V rendri potom prechádzam celý arraylist a vykreslujem jednotlive predmety. Ked objekt zoberiem tak ho odstránim z arraylistu - nebude sa ani vykreslovat
Title: Re: OOP - "spešl zadanie"
Post by: Mitwoc on 11.12.2011, 21:28:37
Co vsetko ma obsahovat hra a kedy sa ma odovzdavat ?  ???
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 12.12.2011, 04:00:08
ak sa dobre pamatam tak:
-freda, ktory sa hybe
-batoh
-svet
-itemy
-gravitacia (skakanie)
-hra sa musi nejak korektne skoncit

nemusia byt nepriatalia (neviem ci sa na ne zabudlo alebo fakt nerteba)
Title: Re: OOP - "spešl zadanie"
Post by: mino on 12.12.2011, 06:04:17
Zadanie odovzdavame az v januari, ale nemusime ho mat hotove uz teraz vo stvrtok? Netreba ho nahrat na moodle teraz?
Title: Re: OOP - "spešl zadanie"
Post by: Domino_666 on 14.12.2011, 01:26:31
tak myslím že stačí až potom, aspoň tak som pochopil mireka
inak to rovno prenášam  ;D
Title: Re: OOP - "spešl zadanie"
Post by: mino on 14.12.2011, 01:48:13
Otázka ohľadom pmd:
Keď zadám
Code: [Select]
ant pmd je to ekvivalentné s
Code: [Select]
./pmd.sh ../../src/ html ruleset.xml > output.html ?
Title: Re: OOP - "spešl zadanie"
Post by: Mitwoc on 14.12.2011, 17:35:40
a este jedna otazka... ako vykreslit len urcitu vrstvu (layer) mapy ? a ako vykreslit itemy na to urcite miesto, ktore som si zvolil v mape pomocou tych farebnych stvorcekov ?  :D
Title: Re: OOP - "spešl zadanie"
Post by: Domino_666 on 16.12.2011, 01:11:20
Taký začiatočnícky javovský dotaz, pravdepodobne ide o somarinu, ale nejako ma nenapadlo ako to spraviť.
Ide o to, že keď robím pole obrázkov pre animáciu, tak tam dávam napr.

Image[] star = {
   new Image("cesta"),
   // dalsich x obrazkov
}

ale nechcem, resp. je neefektívne všetky tie obrázky tam ručne vypisovať, tak som to chcel spraviť nejako v cykle. No neviem ako to zostaviť, nech to skúšam ako skúšam, nejako mám furt zlé typy, alebo keď to zhltne netbeans, tak mi spadne hra pre nejaké null exception alebo niečo také.

Nejako som zatiaľ nevyguuglil nič, všade čo som našiel, sa s typom Image pracovalo ako s jedným obrázkom, nie ako s poľom. V podstate by mi stačilo, pridať k jednému ďalší a tak ďalej.

Alebo urobiť jednoduchú animáciu napr. z jedného obrázku a k nej potom pridávať cez metódu addFrame(frame, duration) ďalšie?
Title: Re: OOP - "spešl zadanie"
Post by: Agamemnon on 16.12.2011, 01:41:46
ja by som z toho urobil list a potom len volal add()... namiesto poľa
Title: Re: OOP - "spešl zadanie"
Post by: Mitwoc on 16.12.2011, 01:54:47
v cykle môzes skusit nieco take: star = new Image("cesta/k_obrazkom/bez_cisla_a_koncovky"+i+".png")
Title: Re: OOP - "spešl zadanie"
Post by: Domino_666 on 16.12.2011, 07:10:20
Ozaj, je nejaká možnosť spustiť na pozadí niečo ako časovač? Že by sa niečo dialo buď náhodne, alebo na základe nejakého intervalu? Nikde som nenašiel nejaké metódy na prácu s časom (okrem dĺky framu pri animácii, ale to nieje to čo myslím)
Title: Re: OOP - "spešl zadanie"
Post by: Agamemnon on 16.12.2011, 15:27:34
viem ti z hlavy povedat, ako to urobit v c#...

takze predpokladam, ze nieco take bude mat aj java... len musis pozriet javadoc... hladaj nieco ako Timer... alebo potom pripadne pusti nejaky Thread alebo BackgroundWorker a napis si vlastny Timer, ktory bude bezat v tom vlakne...

potom pozor na volania medzi threadmi... ako na citanie, tak na zapis... lockuj premenne, ak je to potrebne...
Title: Re: OOP - "spešl zadanie"
Post by: mino on 17.12.2011, 04:14:16
Ozaj, je nejaká možnosť spustiť na pozadí niečo ako časovač? Že by sa niečo dialo buď náhodne, alebo na základe nejakého intervalu? Nikde som nenašiel nejaké metódy na prácu s časom (okrem dĺky framu pri animácii, ale to nieje to čo myslím)

Funkcia update() ma 1 parameter - kolko milisekund uplynulo od jej posledneho vykonania, tak ten cas si mozes pripocitavat do nejakej premennej a ked dosiahne urcitu hodnotu, tak vykonas tu tvoju akciu.
Title: Re: OOP - "spešl zadanie"
Post by: Domino_666 on 17.12.2011, 06:09:58
dík za rady, ide to, použil som na to metódu gc.getTime(); :)


Ako je to s tými generyckými kolekciami?

Chápem správne, že:

ArrayList<Item> backpack = new ArrayList<Item>();

vytvorí generické pole (resp. zoznam) prvkov, ktoré majú typ Item a celé sa to volá backpack? Takto sa to snažím zatiaľ spraviť, ale problém je, že keď tam chcem cez .add(); vložiť predmet, spadne program a píše nejaké null pointer exception alebo niečo také na tom riadku, kde sa to snažím vložiť. Predpokladám, že mi nejako nesedia typy, mám to zatiaľ zhruba takto:

abstraktná trieda Item, v nej mám pár metód spoločných pre všetky predmety (gettery, settery...) a následne všetky predmety túto triedu rozširujú. Takže napr. mám

public class Key extends Item(){ ... }

V konštruktore BackpackImpl som si vytvoril ten zoznam (viď vyššie) a metódu

public void addItem(Item predmet) {
 this.backpack.add(predmet);
}

v update to volám takto:

backpack.addItem((Item)key);

takže predtým ten typ Key pretypujem na Item, ktorý by tam mal byť, ale nejako mi to nechce zobrať  am

Title: Re: OOP - "spešl zadanie"
Post by: Agamemnon on 17.12.2011, 17:12:08
1. pastujte chyby a exceptions presne... inak môžem max. tak hádať :P
2. naučte sa čítať exceptions... null pointer exception znamená presne to, čo tam píše a nemá to nič spoločné s typom... a nie, nepíše ti to preto, že ti tam nesedia typy... ak máš fakt túto exception, tak niektorý z objektov nie je vytvorený a máš tam null...
3. naučte sa používať debugger... toto je vec, ktorá sa v debuggeri vyrieši za 10s...
4. to pretypovanie tam nepotrebuješ, ak trieda Key dedí od Item (v takom prípade platí, že "key instanceof Item" je true)... potom aj volanie adItem metódy, aj volanie add metódy na ArrayListom je korektné

edit:
Quote
použil som na to metódu gc.getTime();
dúfam, že gc neznamená garbage collector... ale niečo ako game context alebo tak...
Title: Re: OOP - "spešl zadanie"
Post by: Domino_666 on 17.12.2011, 20:13:31
dík, nebol vytvorený ten objekt, resp. mal som tam chybu

to gc je gamecontainer
Title: Re: OOP - "spešl zadanie"
Post by: Domino_666 on 19.12.2011, 02:12:39
Ako dostávate veci z mapy do hry?
V konštruktore levelu som spravil niečo takéto (napíšem to skrátene + nejaké komentáre):
(snažil som sa ísť aspoň čiastočne podľa scenárov - nejaké to základné "myslenie" som zobral odtiaľ (zhruba vzťahy medzi triedami, rozhraniami atď)


... // this.map je typu TiledMap - to je samotná načítaná mapa
int layerIndex = this.map.getLayerIndex("actors"); // zistí index vrstvy s názvom "actors"
int w,h; // šírka, výška
// cyklicky prejdem celú mapu
for(h=0; h<this.map.getHeight(); h++){
     for(w=0; w<this.map.getWidth(); w++){
           int tileID = this.map.getTileId(w,h,layerIndex); // zistí jedinečné ID tilu (blbo sa to skloňuje  ;D) podľa jej umiestnenia - výška, šírka, vrstva
           boolean foundPlayer = "true".equals(this.map.getTileProperty(tileID, "player", "true")); // zistí parametre tej taily a ak je player true, tak našlo hráča
           if(foundPlayer){ // ak našlo hráča, vytvorí jeho inštanciu a nastaví pozíciu
               Fred fred = new Fred(w,h);
               this.add(fred); // metoda add(Actor) pridava do generického zoznamu actorov freda (hráča)
           }
      }
}

Problém je, že neviem prečo mi to (asi) kontroluje všetky vrstvy a dokonca neviem či aj nie opakovane (v hernej logike je to celé v časti init, takže to by nemalo...) a program prakticky prestane pracovať, resp. fps klesne na 1 akoby sa zahltil, aj to až po dlhšom čase, kým sa aspoň niečo načíta. Skúšal som vrstvu napísať ručne (jej číslo v kóde) a čo som bol prekvapený, furt mi "playera" našlo, aj keď malo hľadať v inej vrstve, kde určite nebol, to som si skontroloval aj v Tile Editore.

V tomto konkrétnom prípade som skúsil spraviť pomocnú premennú boolean, do ktorej som uložil informáciu o tom, či už našlo hráča a ak bolo true, tak z metódy vyskočil. Toto už šlo krásne plynulo, bez poklesu fps či iných vedľajších efektov. Problémom ale je, že rovnako chcem postupovať aj s ostatnými predmetmi (hviezdy, kľúče, elixíry...) a vtedy už mi pomocné premenné budú na nič, resp. tak či by som ich musel manuálne písať do kódu a teda keď tak ich už radšej nepridávať z mapy ale vytvoriť ich inštancie v kóde. Ale tomu sa chcem vyhnúť.
Title: Re: OOP - "spešl zadanie"
Post by: Agamemnon on 19.12.2011, 03:26:45
V tomto konkrétnom prípade som skúsil spraviť pomocnú premennú boolean, do ktorej som uložil informáciu o tom, či už našlo hráča a ak bolo true, tak z metódy vyskočil. Toto už šlo krásne plynulo, bez poklesu fps či iných vedľajších efektov. Problémom ale je, že rovnako chcem postupovať aj s ostatnými predmetmi (hviezdy, kľúče, elixíry...) a vtedy už mi pomocné premenné budú na nič, resp. tak či by som ich musel manuálne písať do kódu a teda keď tak ich už radšej nepridávať z mapy ale vytvoriť ich inštancie v kóde. Ale tomu sa chcem vyhnúť.

žiadne manuálne písanie...
- dictionary na premenné
- pridaj premenné ako instance field tým predmetom

so zvyškom ti nepomôžem, lebo tie metódy nepoznám a nvm, čo robia vo vnútri...
btw... fred nepotrebuje vedieť na akej je vrstve?
Title: Re: OOP - "spešl zadanie"
Post by: Mitwoc on 19.12.2011, 04:09:31
ako ste zabezpecili fredov pohyb, aby vam "neusiel" z okna ? aby bol stale niekde na zaciatku, alebo v strede okna ?
Title: Re: OOP - "spešl zadanie"
Post by: Domino_666 on 19.12.2011, 04:17:02
@Agamemnon
Ako myslíš tie premenné? Asi sa nechápeme. Chcel som to spraviť tak, že na začiatku sa vytvorí nová inštancia triedy level, viac menej ten bude všetko riadiť ďalej takto:
-v konštruktore načítam mapu, prejdem celú mapu a keď nájde na mape nejaký item/nepriateľa/freda, pridá ho do generického zoznamu Actorov - Actor je interface, ktorý implementujú 2 abs. triedy: Character (fred, nepriateľa) a Item (hviezdy elixíry...) - viac menej takto to bolo načrtnuté v scenároch, akurát batoh mám myslím trocha inak, resp. zo scenárov som nepochopil ako to celkovo bolo myslené, ale funguje mi to v pohode :)
-v update metóde hry sa updatne len samotný level, čo v princípe znamená toľko, že prejde celým tým generickým poľom (v ktorom už má všetky predmety, postavy...) a každú z nich updatne (ak je čo updatnúť, to už riadia metódy na všetko prakticky zvlášť)
-v render metóda funguje rovnako, akurát sa ale nič neupdatuje, ale už len zobrazí

Fred ani nič ostatné už po tom, čo ho raz dostanem do toho generického zoznamu už nemusí mať informáciu o vrstve. To chcem riešiť tak, že medzi jednotlivými vykresleniami vrstiev mapy len vsuniem vykreslenie prvkov zoznamu. Potom budem pokračovať v mape a teda dosiahnem ten efekt, že niečo bude pred a niečo za. Malo by sa to takto dať, no keďže zatiaľ akosi neviem načítať veci do toho zoznamu, bez toho aby sa zahltil program, neviem to otestovať či sa to dá presne podľa mojich predstáv.

Pozrel som cez task managera a niekde sa to zahlcuje:
-ak nechám prejsť celú mapu ale nevytvorím tie inštancie predmetov (zakomentoval som tú časť) tak mi cez task manager vo wine píše okolo 100Mb pamäte
-ak nechám celý kód ako by mal byť aj s tými novými inštanciami, tak to presahuje 400mb pamäte
 ???


@Mitwoc:
-na koniec mapy, na miesto, kam už nechceš aby sa dalo ísť umiestni collision, toto ešte ja nemám implementované, ale chcem to spraviť tak, že tam dám značku collision, parametre "block" "true" a potom to nejako budem riešiť cez intersecty, ale ešte neviem presne
K vykreslovaniu v strede okna: použi na to jednu z variánt metódy render:

// render(int x, int y, int sx, int sy, int width, int height)
map.render(100,100,0,0,10,10);
// Which would render the section of the map in tiles from 0,0 to 10,10 at the screen position 100,100. This can be be very useful for performance when scroll round large tile maps.
Title: Re: OOP - "spešl zadanie"
Post by: Mitwoc on 19.12.2011, 04:40:41

@Mitwoc:
-na koniec mapy, na miesto, kam už nechceš aby sa dalo ísť umiestni collision, toto ešte ja nemám implementované, ale chcem to spraviť tak, že tam dám značku collision, parametre "block" "true" a potom to nejako budem riešiť cez intersecty, ale ešte neviem presne
K vykreslovaniu v strede okna: použi na to jednu z variánt metódy render:

// render(int x, int y, int sx, int sy, int width, int height)
map.render(100,100,0,0,10,10);
// Which would render the section of the map in tiles from 0,0 to 10,10 at the screen position 100,100. This can be be very useful for performance when scroll round large tile maps.
Vdaka za odpoved :) ale mne nejde o renderovanie mapy, ale  freda. Fred ma svoju poziciu ulozenu v X-ku a vzdy pri jeho pohybe sa to x zmeni. To znamena ze fred sa po okne pohybuje (samozrejme ze aj v mape, ale tu teraz nejde o mapu).
Priklad...na zaciatku je fred celkom na lavej strane okna, postupne sa zacne pohybovat do prava. Mapa za nim ide smerom vlavo, ale samotny fred sa pomaly vzdialuje od laveho okraju okna a niekde v polovicke mapy je uz celkom pri pravom okraji okna.
Môzem mu nastavit, ze sa bude robrazovat stale v strde okna, ale ten obrazok nebude predstavovat jeho skutocnu poziciu. (Mozno to mam len ja zle nakodene.) Neviete mi s tym niekto poradit ?
Title: Re: OOP - "spešl zadanie"
Post by: Agamemnon on 19.12.2011, 06:06:42
@Agamemnon
Ako myslíš tie premenné? Asi sa nechápeme. Chcel som to spraviť tak, že na začiatku sa vytvorí nová inštancia triedy level, viac menej ten bude všetko riadiť ďalej takto:
-v konštruktore načítam mapu, prejdem celú mapu a keď nájde na mape nejaký item/nepriateľa/freda, pridá ho do generického zoznamu Actorov - Actor je interface, ktorý implementujú 2 abs. triedy: Character (fred, nepriateľa) a Item (hviezdy elixíry...) - viac menej takto to bolo načrtnuté v scenároch, akurát batoh mám myslím trocha inak, resp. zo scenárov som nepochopil ako to celkovo bolo myslené, ale funguje mi to v pohode :)
-v update metóde hry sa updatne len samotný level, čo v princípe znamená toľko, že prejde celým tým generickým poľom (v ktorom už má všetky predmety, postavy...) a každú z nich updatne (ak je čo updatnúť, to už riadia metódy na všetko prakticky zvlášť)
-v render metóda funguje rovnako, akurát sa ale nič neupdatuje, ale už len zobrazí
spomínal si nejakú pomocnú boolean premennú - ja som o tých hovoril - aby si to nemusel písať manuálne, tak si urob dictionary na to... alebo to daj priamo do triedy Item alebo ako sa volá

problém pre mňa je, že netuším, ako sa správajú tie ďalšie metódy - napr. getTile, getTileProp etc...

inak - podľa toho, čo si napísal... tak len vyskoč z cyklu, keď nájdeš tú postavu, čo hľadáš... (dá sa to pochopiť viacerými spôsobmi, čo si písal... takže toto nemusí byť dobré riešenie)

Quote
Pozrel som cez task managera a niekde sa to zahlcuje:
-ak nechám prejsť celú mapu ale nevytvorím tie inštancie predmetov (zakomentoval som tú časť) tak mi cez task manager vo wine píše okolo 100Mb pamäte
-ak nechám celý kód ako by mal byť aj s tými novými inštanciami, tak to presahuje 400mb pamäte
 ???

niekde sa ti to zacyklí a vytvárajú sa ti nejaké nové premenné... niečo také... tak či tak je to zlé...


moja hlavná rada:
zober debugger, daj si tam breakpoint pred ten cyklus a prejdi si to pomocou neho... sleduj kam ide tok programu, a aké hodnoty majú premenné - či nadobúdajú také hodnoty ako očakávaš... imo rýchlo nájdeš, kde je problém a čo presne sa deje...
Title: Re: OOP - "spešl zadanie"
Post by: mirek on 19.12.2011, 17:05:16
ak sa dobre pamatam tak:
-freda, ktory sa hybe
-batoh
-svet
-itemy
-gravitacia (skakanie)
-hra sa musi nejak korektne skoncit

nemusia byt nepriatalia (neviem ci sa na ne zabudlo alebo fakt nerteba)
o nepriateloch sme hovorili v suvislosti s itemami
Title: Re: OOP - "spešl zadanie"
Post by: Domino_666 on 20.12.2011, 06:14:32
ďakujem, odteraz považujem debugger za svätý, mal som tam nechtiac votretú "večnú pravdu", teda pri každom prejdení cyklu sa vytvoril nový Fred. Podľa debuggera sa ich vytvorilo cez 2800  ;D (a to som mal v pláne vytvoriť len singleplayer hru  ;D)
každopádne už mi to ide, dík za rady  :thumbs-up:
Title: Re: OOP - "spešl zadanie"
Post by: Agamemnon on 20.12.2011, 13:06:54
ďakujem, odteraz považujem debugger za svätý, mal som tam nechtiac votretú "večnú pravdu", teda pri každom prejdení cyklu sa vytvoril nový Fred. Podľa debuggera sa ich vytvorilo cez 2800  ;D (a to som mal v pláne vytvoriť len singleplayer hru  ;D)
každopádne už mi to ide, dík za rady  :thumbs-up:
jj, debugger vie dost pomoct :)
Title: Re: OOP - "spešl zadanie"
Post by: Leclair on 20.12.2011, 17:10:08
Check the videos inside this profile , some might be usefull :) http://www.twitch.tv/notch/ (http://www.twitch.tv/notch/)
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 20.12.2011, 17:39:31
kolko FPS mate vy? mne to hadze okolo 900, ale ked dam vykreslit mapu tak klesne az na 300 :/
Title: Re: OOP - "spešl zadanie"
Post by: mino on 20.12.2011, 18:57:43
Na linuxe som viac ako 60 nemal... neviem, ci treba nieco nastavit alebo preco mam take nizke... (Grafika mi inak pod linuxom beha dobre, akceleracia funguje, Compiz funguje...)
Odskusam neskor vo Win...
Title: Re: OOP - "spešl zadanie"
Post by: Domino_666 on 20.12.2011, 20:17:40
V init mám zapnuté vsync, takže max 60

// gc je GameContainer
gc.setVSync(true);
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 20.12.2011, 22:36:01
pozeral som na moode a celkom nerozumiem tomu casu - Utorok, 20 december 2011, 23:55. to hore co je napisane "Oddelené skupiny: mirek po 07:30-09:00 B515" - to znamena ze sa tyka nas alebo prave naopak?
Dalsi problem je s velkostou ... robil som si vlastnu grafiku, aj niejake tie animacky naviac som tam hoidl a tak mam cez 15MB ... a limit je 5
Title: Re: OOP - "spešl zadanie"
Post by: mino on 21.12.2011, 19:34:40
Ten termin sa tam sustavne meni... Ja sa drzim toho, co nam povedal Binas na cviceni, ze do januara...

//Edit: Kamaratka mi povedala, ze sa to meni kvoli odovzdavaniu/preberaniu zadani -> aby uz po polnoci nikto nemohol nahrat (?)
Asi na tom nieco bude, lebo dnes je tam zase iny termin 21.12. 23:55...
Title: Re: OOP - "spešl zadanie"
Post by: mino on 22.12.2011, 00:44:02
Taka technicka otazka... Ako ste riesili fonty? Nedari sa mi ho zmenit... Staci aspon velkost... Skusal som nieco ako:
Code: [Select]
        Font font = new Font(Font.SERIF, Font.PLAIN, 20);
        UnicodeFont uFont = new UnicodeFont(font, font.getSize(), font.isBold(), font.isItalic());
        graphics.setFont(uFont);
        graphics.setColor(Color.yellow);
        graphics.drawString("MENU", 10, 10);
Ale nevypise mi to absolutne nic.
(Ked vynecham ten klucovy riadok, kde je setFont, tak mi to vypise default. fontom zltej farby.)

//Edit: nakoniec sa mi to podarilo tak, ze som pouzil namiesto UnicodeFont TrueTypeFont (je deprecated, ale co uz...)
Title: Re: OOP - "spešl zadanie"
Post by: n3r0 on 22.12.2011, 19:56:07
len tak orientačne či som dobre počul :) , vravelo sa že termín na odovzdanie "najneskôr "bude do cca 16.január ??
Title: Re: OOP - "spešl zadanie"
Post by: mino on 22.12.2011, 20:13:55
len tak orientačne či som dobre počul :) , vravelo sa že termín na odovzdanie "najneskôr "bude do cca 16.január ??
Ja si to tiez pamatam cca tak...
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 23.12.2011, 00:07:39
len tak orientačne či som dobre počul :) , vravelo sa že termín na odovzdanie "najneskôr "bude do cca 16.január ??
- prvé 2 týždne skúškového, čiže tak to vychádza

stretol sa už niekto s takouto chybou v pmd?

 Processing errors

File:   C:\...\BlockMap.java   
Problem: Error while parsing C:\...\BlockMap.java
Title: Re: OOP - "spešl zadanie"
Post by: mino on 23.12.2011, 19:09:25
stretol sa už niekto s takouto chybou v pmd?

 Processing errors

File:   C:\...\BlockMap.java   
Problem: Error while parsing C:\...\BlockMap.java
Hej, aj ja som ju raz mal... spustil som PMD znova a už nebola... Nemáš nejakú syntaktickú chybu v tom súbore?
Title: Re: OOP - "spešl zadanie"
Post by: AnvilOfFury on 23.12.2011, 20:54:30
stretol sa už niekto s takouto chybou v pmd?

 Processing errors

File:   C:\...\BlockMap.java   
Problem: Error while parsing C:\...\BlockMap.java
Hej, aj ja som ju raz mal... spustil som PMD znova a už nebola... Nemáš nejakú syntaktickú chybu v tom súbore?
Niečo podobné robilo PMD kamošovi pri zápise List<String> a = new ArrayList<>(); v JDK7 (korektne:  List<String> a = new ArrayList<String>();)
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 23.12.2011, 22:32:37
dik bolo to tym arraylistom
Title: Re: OOP - "spešl zadanie"
Post by: Mitwoc on 25.12.2011, 20:35:01
a ako ste vyriesili "Cyclomatic Complexity" ? lebo mi to vyskakuje v triede fred ked beriem input od hraca a aj v konstruktore levelimpl ked nacitavam layer s actormi v hre, lebo tam mam vsade "if"  ked nazov objektu zacina urcitym retazcom.

A este k tomu odovzdavaniu... nejak tam nenaskakuje dalsi termin do ktoreho treba odovzdat  >:(
Title: Re: OOP - "spešl zadanie"
Post by: mino on 25.12.2011, 23:19:06
No toto by zaujimalo aj mna... Netusim cim nahradit tie "ify" pri kontrolovani inputu. Switch sa tam AFAIK pouzit neda a addKeyHandler je opat vseobecny pre vsetky klavesy => treba ich rozlisit v handleri pomocou "if".

Myslim, ze PMD ma nejake opodstatnenie, 90% warningov je k veci, ale podla mna by to nemala byt priorita, ze podme "znasilnovat" kod, len, aby som mal 0 hlasok v PMD...

Par mojich postrehov:
- 4x som pouzil ten isty retazec v kode => PMD chce, aby som si spravil konstatnu a tu pouzil na miesto tych 4 hodnot. Ale co ak je to len nahoda, ze tam mam 4x tu istu hodnotu? Tie hodnoty nemusia byt v ziadnom vztahu a ja chcem, aby boli nezavisle a aby som mohol neskor zmenit lubovolnu z nich. PMD nevie vyznam mojho kodu... (Ja viem, ak by som bol perfekcionista, tak nepouzijem v kode ani jedno konkretne cislo/retazec a vsetko budu vopred deklarovane konstatny, ale kto ide az do takeho extremu...)

- PMD pravidla su IMHO nedomyslene napr. v pripade, ked pouzijem premennu len v 1 funkcii. PMD hlasi, ze si ju mam dat ako lokalnu premennu funkcie. Z hladiska viditelnosti je to OK, preco by mala byt viditelna v celej triede, ale z hladiska zivotnosti: co ak potrebujem, aby si premenna zachovala hodnotu medzi 2 volaniami tej funkcie? Vo VB sa dala vytvorit pre takyto ucel staticka premenna vnutri metody, v Jave sa to neda. Ako inak to mam riesit, ked nie tak, ze si tu premennu vyberiem von z funkcie? Mam teraz vymyslat nejake "hacky" a umele metody, len aby ta premenna bola aj v inej funkcii, aby mi to preslo kontrolou?

Ak sa mylim, rad sa necham poucit.  :)
Title: Re: OOP - "spešl zadanie"
Post by: Agamemnon on 26.12.2011, 00:42:16
(Ja viem, ak by som bol perfekcionista, tak nepouzijem v kode ani jedno konkretne cislo/retazec a vsetko budu vopred deklarovane konstatny, ale kto ide az do takeho extremu...)

ja to robím bežne... takisto aj kolegovia v práci... je to dobrý zvyk a zvyšuje to výrazne čitateľnosť kódu

Quote
- PMD pravidla su IMHO nedomyslene napr. v pripade, ked pouzijem premennu len v 1 funkcii. PMD hlasi, ze si ju mam dat ako lokalnu premennu funkcie. Z hladiska viditelnosti je to OK, preco by mala byt viditelna v celej triede, ale z hladiska zivotnosti: co ak potrebujem, aby si premenna zachovala hodnotu medzi 2 volaniami tej funkcie? Vo VB sa dala vytvorit pre takyto ucel staticka premenna vnutri metody, v Jave sa to neda. Ako inak to mam riesit, ked nie tak, ze si tu premennu vyberiem von z funkcie? Mam teraz vymyslat nejake "hacky" a umele metody, len aby ta premenna bola aj v inej funkcii, aby mi to preslo kontrolou?

to si riešil okej... to je nie úplne naj pravidlo v rulesete...
inak dá sa to urobiť ako napr. inout parameter metódy - a je to pomerne elegantné a jednoduché...
potom si viem predstaviť ešte niekoľko workaroundov okolo toho :D zbytočne zložité

edit:
okej, vygooglil som, že java nemá niečo také, ako predávanie parametrov metódy ako referencia (na rozdiel napr. od c#)... takže tú moju vetu o argumentoch metódy môžeš zabudnúť :)
Title: Re: OOP - "spešl zadanie"
Post by: mino on 26.12.2011, 05:57:18
A neviete niekto, kedy su tie terminy na odovzdavanie zadania? Alebo kde je napisane, ze kedy su? Alebo kedy to na tom neznamom mieste bude napisane? :D
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 26.12.2011, 17:34:24
No toto by zaujimalo aj mna... Netusim cim nahradit tie "ify" pri kontrolovani inputu. Switch sa tam AFAIK pouzit neda a addKeyHandler je opat vseobecny pre vsetky klavesy => treba ich rozlisit v handleri pomocou "if".

Ja som to rozbil na viac metod - movementButtons(), actionButtons() ... . Tie potom len zaradom volam tam kde by mali byt tie ify. Takisto mam aj pohyb do stran vytiahnuty do osobitnych metod kvoli tejto hlaske cim mam z toho tak neprehladny kod ze sa v tom pomaly stracam aj sam :/ Naozaj si myslim ze to PMD by malo byt lem ako pomocka a nie sa toho striktne drzat.

Inak som si vsimol ze PMDcko pocita clenske premenne podla poctu riadkov v kolkych ich ma deklarovane (cize private int premenna1, premenna2 zarata ako jednu clensku premennu). Pri v classe Fred mam ale bez tejto "chyby" viac ako povolenych 14 premennych (polia obrazkov pre animacie, animacie, energia, zivoty, batoh ...a hned je ich cez 20) Ako by sa dalo zriesit toto?
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 26.12.2011, 17:37:09
a ako ste vyriesili "Cyclomatic Complexity" ? lebo mi to vyskakuje v triede fred ked beriem input od hraca a aj v konstruktore levelimpl ked nacitavam layer s actormi v hre, lebo tam mam vsade "if"  ked nazov objektu zacina urcitym retazcom.

A este k tomu odovzdavaniu... nejak tam nenaskakuje dalsi termin do ktoreho treba odovzdat  >:(
Nacitanie actora z mapy si asi robil nejak zaujimavo. Ja to mam ze actor je preprezentovany tilom, nie objektom. Potom porovnavam tileID na co sa da pouzit switch s cislami.
Title: Re: OOP - "spešl zadanie"
Post by: mino on 26.12.2011, 17:49:53
Ja som to rozbil na viac metod - movementButtons(), actionButtons() ... . Tie potom len zaradom volam tam kde by mali byt tie ify. Takisto mam aj pohyb do stran vytiahnuty do osobitnych metod kvoli tejto hlaske cim mam z toho tak neprehladny kod ze sa v tom pomaly stracam aj sam :/ Naozaj si myslim ze to PMD by malo byt lem ako pomocka a nie sa toho striktne drzat.
Dobry napad  :thumbs-up:
Ja som to chcel rozbit na metody, ale ako handlery pre jednotlive klavesy, ktore by volal priamo Slick-engine... Takto zaradom volat metody je sice IMHO zbytocne, ale co uz, ked PMD sa stazuje...
Quote
Inak som si vsimol ze PMDcko pocita clenske premenne podla poctu riadkov v kolkych ich ma deklarovane (cize private int premenna1, premenna2 zarata ako jednu clensku premennu). Pri v classe Fred mam ale bez tejto "chyby" viac ako povolenych 14 premennych (polia obrazkov pre animacie, animacie, energia, zivoty, batoh ...a hned je ich cez 20) Ako by sa dalo zriesit toto?
Tu by ti mohlo pomoct vybrat suviasiace veci do novych tried... Napr. ja som mal najprv vo Fredovi aj gravitaciu a dalsie veci ohladom jeho pohybu, ale potom som to vytiahol do samostatnej triedy pre fyziku (a ta sa da pouzit aj pre dalsie objekty); na batoh mas asi tiez samostatnu triedu...
A polia obrazkov pre animiacie nepotrebujes mat ako clenske premenne! Staci ich mat tam, kde vytvaras animaciu, potom su uz zbytocne... Ak by si sa potreboval dostat k obrazkom, tak animation.getImage(index) ci tak dajak to je... A este ma napada, ze ak by si mal vela tych animacii , tak dat do pola a potom k nim pristupovat nejak tak: animation[WALKING], animation[STANDING], pricom WALKING, STANDING, ... by si mal ako konstatny =0, =1, ...

Title: Re: OOP - "spešl zadanie"
Post by: Cici on 26.12.2011, 20:40:05
gravitaciu mam v abstractActorovi (aby padalo vsetko :D ) ale sak animacie vytvaram v konstruktore freda - ci da sa aj inak? ja mam:
Code: [Select]
private Animation waitRightAnim, ...;
private Image[] waitRight = {
        new Image("cesta"), new Image("cesta"), ...
       //kvoli tomu ze mam vlastnu animaciu nerobim cez spritesheety
};

public Fred(float new_x, float new_y) throws SlickException {
       this.waitRightAnim = new Animation(waitRight, 30, true);
..
}
Title: Re: OOP - "spešl zadanie"
Post by: mino on 27.12.2011, 02:31:00
Jj, ja animacie tiez robim v konstruktore. Len som chcel povedat, ze nepotrebujes mat
Code: [Select]
private Image[] waitRight = {...}ako clensku premennu, ale mozes tu premennu - pole obrazkov - mat ako lokalnu premennu v konstruktore => usetris par premennych z toho dovoleneho limitu...
Title: Re: OOP - "spešl zadanie"
Post by: petonet on 31.12.2011, 17:41:47
Zdravim,


neviete niekto kolko tych levelov pre Freda treba?

a inak do noveho roku vsetko dobre zelam :beer1:
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 31.12.2011, 21:55:00
Zdravim,


neviete niekto kolko tych levelov pre Freda treba?

a inak do noveho roku vsetko dobre zelam :beer1:
iba jeden jediny
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 02.01.2012, 05:53:25
teraz som si zacal citat scenare cvik (lebo som robil podla toho co sme si hovorili na cvikach) a vsimol zopar veci ktorym celkom nerozumiem:
-v 4 cviku v pripravenom projekte je v Level metoda render() a update() aj s paramatrom Level. Naco tam je ten parameter? Sak ked to je v nom neda sa jednoducho pouzit this?  Ten parameter sa mi zda zbytocny aj v Actorovi - naco je tam potrebne vediet v ktorom levely dany actor je? Pritom v Star to tam uz nie je.
-Tiez tam nerozumiem metode setPlayer(). Naco je? sak Playera (Freda) vytvorim v konstruktore levelu (pri nacitani z mapy). Ci?
-Dalsia vec, musia mat vsetci charactery energiu? (napr duchovi ju urcite nemam ako znizit .. ked uz je mrtvy tak je neznicitelny nie? :D)

mozno su to hovadiny ... ale radsej sa spytam ako mam odist s 0 bodmi zo zadania :D
Title: Re: OOP - "spešl zadanie"
Post by: Domino_666 on 02.01.2012, 20:17:51
veľa vecí závisí od toho, ako si to robil...
ja som to pochopil od Mireka tak, že tie scenáre majú načrtnúť, ako sa to zhruba dá poskladať, ale nemusí... má to proste spĺňať tie požiadavky čo nám hovoril a ako to bude spravené je v podstate na nás.
Title: Re: OOP - "spešl zadanie"
Post by: mino on 03.01.2012, 01:02:22
veľa vecí závisí od toho, ako si to robil...
ja som to pochopil od Mireka tak, že tie scenáre majú načrtnúť, ako sa to zhruba dá poskladať, ale nemusí... má to proste spĺňať tie požiadavky čo nám hovoril a ako to bude spravené je v podstate na nás.
:thumbs-up:
Ja tiez pocitam s tym, ze tie scenare nie su zavazne a ze je na mne, ako som to spravil. Podstatne je, aby to splnalo tie poziadavky, ktore sme si spisali (dohratelnost, batoh... a neviem co este...) + aby boli dodrzane principy OOP. A miestami som mal pocit, ze scenar z jedneho cvicenia bol v urcitych detailoch v rozpore so scenarom z ineho cvicenia => teda na tych detailoch IMHO nezalezi... A co som sa bavil s dalsimi 2-3 ludmi, tak si to tiez robili podla seba...

A ved ta analyza a navrhovanie tried/rozhrani je na tom to najkrajsie. ;D Nepaci sa mi taky presny nalinkovany postup, ako je v tych scenaroch... Radsej keby v nich bolo presne specifikovane, o com je ta hra, lebo dej hry (aspon v mojom pripade) bude dost chaby - nemam velmi fantaziu na vymyslanie takych veci... :D
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 03.01.2012, 05:06:32
dej hry (aspon v mojom pripade) bude dost chaby - nemam velmi fantaziu na vymyslanie takych veci... :D
ty tam mas dej? :o
Title: Re: OOP - "spešl zadanie"
Post by: Domino_666 on 03.01.2012, 07:05:26
dá sa ísť v pohode podľa scenárov, princípy som z nich spravil skoro rovnako, skôr išlo o niektoré presné body že čo a ako, to sa nie vždy podľa toho dalo...
stačilo mi, že v úvode bolo napísané čo treba spraviť, zhruba ako a ďalej som zväčša nepozeral
už musím vyriešiť len mapy a tú dokumentáciu a snáď to bude...
Title: Re: OOP - "spešl zadanie"
Post by: mino on 03.01.2012, 07:22:56
dej hry (aspon v mojom pripade) bude dost chaby - nemam velmi fantaziu na vymyslanie takych veci... :D
ty tam mas dej? :o
No tom som pouzil velmi silne slovo na pomenovanie toho, ze ked pozbieras vsetky hviezdicky v leveli, tak si ho presiel a postupujes do dalsieho :D Mal som skor napisat "pointa", alebo "ciel hry", dej nema ziadny... :D
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 05.01.2012, 18:10:25
podarilo sa niekomu vytvorit distribuovatelny subor? Mne to vyhadzuje chybu
Code: [Select]
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
...
Title: Re: OOP - "spešl zadanie"
Post by: Mitwoc on 05.01.2012, 18:52:07
Tiez mi hadzalo tu chybu v NetBeanse a ked som to opravil, tak mi zase nechcelo najst obrazky k animaciam. Tak som isiel do eclipse a robil som podla tohto navodu : http://slick.cokeandcode.com/wiki/doku.php?id=webstart (http://slick.cokeandcode.com/wiki/doku.php?id=webstart) (Creating a JAR Package in Eclipse) a teraz mi hadze chybu java.lang.NoClassDefFoundError to je ako zacarovany kruh toto :D Ked sa to niekomu podari, môze dat vediet ako to spravil :)
Title: Re: OOP - "spešl zadanie"
Post by: depeha on 05.01.2012, 19:18:46
Akurát sa mi podarilo spraviť funkčný jar...

@Mitwoc: ide ti to v eclipse spustiť? Podľa tvojej chyby tipujem že nemáš Main class v run configu. (myslím toto (http://dl.dropbox.com/u/17229025/Skola/2%20roc/oop/runcfg.png))
A potom pri exporte ešte treba dávať pozor na to či súbory (obrázky, mapa...) sú v source folder. Malo by to vyzerať nejak takto (http://dl.dropbox.com/u/17229025/Skola/2%20roc/oop/ecl.png).
No, a ešte cesty k súborom v zdrojáku majú byť napr. ("resources/..."), nie ("/resources/..."). Pri spúšťaní v eclipse funguje oboje, ale pri jar-ku iba to prvé.

@Cici: skús   
Code: [Select]
java -Djava.library.path=/cesta/k/libs/ -jar tvojaHra.jar mne to ide iba takto.
Title: Re: OOP - "spešl zadanie"
Post by: mino on 05.01.2012, 19:54:10
Viete už niekto, kedy budeme odovzdávať zadanie? Tento oznam platí aj pre nás?
https://moodle.fei.tuke.sk/mod/resource/view.php?id=3829
Odovzdávanie zadaní prebehne v pondelok 9.jan.2011 od 8:00. Miestnosť bude upresnená.
Title: Re: OOP - "spešl zadanie"
Post by: Mitwoc on 06.01.2012, 01:57:18
mam vsetko ponastavovane tak ako si pisal a stale to iste...  :(
Title: Re: OOP - "spešl zadanie"
Post by: petonet on 08.01.2012, 01:21:24
Zdravim,


treba ten balicek so zadanim niekde upnut alebo ako? lebo v moodli nevidim ziadne miesto kde by to bolo mozne. bu bu
Title: Re: OOP - "spešl zadanie"
Post by: jancuk on 08.01.2012, 02:20:59
Zdravim,


treba ten balicek so zadanim niekde upnut alebo ako? lebo v moodli nevidim ziadne miesto kde by to bolo mozne. bu bu

Chod na moodle > OOP  >  (12 december - 18 december)
                                                          V
                                        Odovzdávanie zadania > klik
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 08.01.2012, 02:53:33
ale hore je oddelené skupiny - a sme tam my ... tiez tam je limit 5MB do coho sa je nerealne zmestit
Title: Re: OOP - "spešl zadanie"
Post by: petonet on 08.01.2012, 03:22:29
ale to tam je z cias ked textovkari odovzdavali. Preto hore oddelene skupiny napisali aby niekoho nenapadlo Freda odovzdat. Teda ak sa dobre pamatam.
Title: Re: OOP - "spešl zadanie"
Post by: RiTChi on 08.01.2012, 03:53:59
Takže mame vlastne vôbec toho Freda odovzdávať na moodle?
Title: Re: OOP - "spešl zadanie"
Post by: petonet on 08.01.2012, 04:01:02
na to vie odpoved iba jeden clovek bu a nechce nam ju akosi prezradit bk
Title: Re: OOP - "spešl zadanie"
Post by: RiTChi on 08.01.2012, 04:18:46
Písal som mu email, ale neodpovedal zatiaľ, fakt by ma to zaujímalo, už ma nebaví stále kontrolovať moodle.
Title: Re: OOP - "spešl zadanie"
Post by: petonet on 08.01.2012, 04:34:16
Co kecam s ludmi tak to nikoho uz nebavi. Nikto nevie co treba robit,ako s tym zapoctom a cas sa krati. A viac ludom neodpovedal. Asi ma vela roboty.
Title: Re: OOP - "spešl zadanie"
Post by: mafoza on 08.01.2012, 05:05:50
Co kecam s ludmi tak to nikoho uz nebavi. Nikto nevie co treba robit,ako s tym zapoctom a cas sa krati. A viac ludom neodpovedal. Asi ma vela roboty.

Potvrdzujem, viacerím neodpísal.
A ešte otázka, vám sa niekomu podarilo spraviť ten spustiteľný súbor? Mám namysli tí, ktorí ste robili cez Netbeans.
Title: Re: OOP - "spešl zadanie"
Post by: RiTChi on 08.01.2012, 05:26:05
Nepodarilo. :( Vidím to tak, že beriem notebook a spustím to z NetBeansu.
Title: Re: OOP - "spešl zadanie"
Post by: petonet on 08.01.2012, 15:08:10
Nepodarilo. :( Vidím to tak, že beriem notebook a spustím to z NetBeansu.


spust tvojho freda cez terminal java -jar <cesta k tvojmu fred.jar> a pozri aky exception vyhodilo. Mne tak stale pisalo cez nemoze najst lwjgl v library path. Tak skus vygooglit ako ten tvoj exception riesit. A ak to ti uz nijak nepojde tak si zozen projekt niekoho komu sa to podarilo rozbehat a skompiluj zdrojaky v jeho projekte. A este k jarku nezabudni vlozit resources a dll subory z lib/lwjgl2.7.daco/natives/
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 08.01.2012, 17:06:27
Nepodarilo. :( Vidím to tak, že beriem notebook a spustím to z NetBeansu.


spust tvojho freda cez terminal java -jar <cesta k tvojmu fred.jar> a pozri aky exception vyhodilo. Mne tak stale pisalo cez nemoze najst lwjgl v library path. Tak skus vygooglit ako ten tvoj exception riesit. A ak to ti uz nijak nepojde tak si zozen projekt niekoho komu sa to podarilo rozbehat a skompiluj zdrojaky v jeho projekte. A este k jarku nezabudni vlozit resources a dll subory z lib/lwjgl2.7.daco/natives/
a tymto sposobom ti to ide aj na inych kompoch? lebo mne nie :/ spusti mi to ale len na mojom :(
Title: Re: OOP - "spešl zadanie"
Post by: Mitwoc on 08.01.2012, 17:24:51
pre vsetkych, co vam nejde vytvorit spustitelny subor....
http://slick.javaunlimited.net/viewtopic.php?p=20219 (http://slick.javaunlimited.net/viewtopic.php?p=20219)

v druhom poste je presne navod ako to spravit + program  :)
Title: Re: OOP - "spešl zadanie"
Post by: petonet on 08.01.2012, 17:45:50
Nepodarilo. :( Vidím to tak, že beriem notebook a spustím to z NetBeansu.


spust tvojho freda cez terminal java -jar <cesta k tvojmu fred.jar> a pozri aky exception vyhodilo. Mne tak stale pisalo cez nemoze najst lwjgl v library path. Tak skus vygooglit ako ten tvoj exception riesit. A ak to ti uz nijak nepojde tak si zozen projekt niekoho komu sa to podarilo rozbehat a skompiluj zdrojaky v jeho projekte. A este k jarku nezabudni vlozit resources a dll subory z lib/lwjgl2.7.daco/natives/
a tymto sposobom ti to ide aj na inych kompoch? lebo mne nie :/ spusti mi to ale len na mojom :(


Tak co som posielal kamosom aby si zahrali tak to islo. Preto treba pozriet ten exception co ti vyhodi JVM ked to skustis cez terminal. Mne tam len nejaku kniznicu nevedelo nalinkovat a kvoli tomu nespustilo. Preto ked som to rozbehal s kamosovym projektom tak mi to islo. On tam tu kniznicu mal dobru.


pre vsetkych, co vam nejde vytvorit spustitelny subor....
http://slick.javaunlimited.net/viewtopic.php?p=20219 (http://slick.javaunlimited.net/viewtopic.php?p=20219)

v druhom poste je presne navod ako to spravit + program  :)

JJ ten jarsplice som skusal ale velmi mi to neslo. Stale pisalo ze to jarko co mi urobilo je poskodene. Asi som nieco zle urobil.
Title: Re: OOP - "spešl zadanie"
Post by: RiTChi on 08.01.2012, 17:56:56
pre vsetkych, co vam nejde vytvorit spustitelny subor....
http://slick.javaunlimited.net/viewtopic.php?p=20219 (http://slick.javaunlimited.net/viewtopic.php?p=20219)

v druhom poste je presne navod ako to spravit + program  :)

Ďakujem, Skúšal som to, ale teraz mi to vyhadzuje exception: java.io.FileNotFoundException: res/maps/paths.txt, mam v koreňovom priečinku jar-ka celý priečinok res/
Title: Re: OOP - "spešl zadanie"
Post by: Mitwoc on 08.01.2012, 19:39:06
ide niekto zajtra odovzdavat ?  ???
Title: Re: OOP - "spešl zadanie"
Post by: petonet on 08.01.2012, 19:41:24
ide niekto zajtra odovzdavat ?  ???


Ja som chcel. Ale miestnost nespecifikovana.

Odovzdávanie zadaní prebehne v pondelok 9.jan.2011 od 9:00. Miestnosť bude upresnená. Ďalší (posledný) termín bude vo štvrtok, 12.jan.2011 od 8:00. Miestnosť bude upresnená.

datumy tam su minulorocne....asi chyba......kto vie...a Binas neodpisuje co mame robit. Takze fakt neviem co s tym. Dotrepem sa do KE a nic z toho lebo tam ani nebude? :ohmygod:
Title: Re: OOP - "spešl zadanie"
Post by: Mitwoc on 08.01.2012, 20:21:44
a posielal si niekde zadanie ?
Title: Re: OOP - "spešl zadanie"
Post by: petonet on 08.01.2012, 20:32:44
ee..neviem kam. Na moodli je len pre textovkarov. Pisali sme mu mail uz asi traja a neodpisal co s tym tak nevieme.
Title: Re: OOP - "spešl zadanie"
Post by: mino on 08.01.2012, 20:45:53
Tiez som mu pisal mail, uvidime...
Zajtra by som chcel tiez odovzdat zadanie, ale najprv musim stihnut dokoncit dokumentaciu... :D
Title: Re: OOP - "spešl zadanie"
Post by: petonet on 08.01.2012, 20:48:09
Tiez som mu pisal mail, uvidime...
Zajtra by som chcel tiez odovzdat zadanie, ale najprv musim stihnut dokoncit dokumentaciu... :D


Myslim ze kazdy mu pisal mail:-D:-D zajtra asi nebude mat dobru naladu:-D
Title: Re: OOP - "spešl zadanie"
Post by: Domino_666 on 08.01.2012, 22:53:57
ja ešte nie  ;D

takže posledný termín je vo štvrtok a neposielať to nikde, keďže sa to nezmestí na moodle, správne chápem?
Title: Re: OOP - "spešl zadanie"
Post by: mino on 08.01.2012, 23:14:36
Ta asi tak... :D
Title: Re: OOP - "spešl zadanie"
Post by: petonet on 08.01.2012, 23:55:04
ja by som isiel aj zajtra odovzdat:-D Ale kam?:-D Kto to vie?:-D  Kedze neodpisuje na mail tak asi nejdem.
Title: Re: OOP - "spešl zadanie"
Post by: n3r0 on 09.01.2012, 03:02:26
neviem ci napisem spravne ale upnite aspon src/* .. inac termin uz je na moodle .. pk6-pc1  ... inac je vela prace s tym mapovanim ?? co vam trvalo najdlhsie ??
Title: Re: OOP - "spešl zadanie"
Post by: RiTChi on 09.01.2012, 03:11:50
Tak v src/ ma byt cely netbeans projekt aj s kniznicami lwjgl a slick, cize je to vacsie ako 5MB.
Title: Re: OOP - "spešl zadanie"
Post by: n3r0 on 09.01.2012, 03:16:18
napisem to jasnejsie .. neviem ci sa robi kontrola originality .. a ak ano tak podla tvojho zdrojku .. a ten je v src .... a ak ma tvoj zdrojak(txt) viac ako 5mb tak klobuk dole  :xmas: ..
Title: Re: OOP - "spešl zadanie"
Post by: petonet on 09.01.2012, 03:19:49
napisem to jasnejsie .. neviem ci sa robi kontrola originality .. a ak ano tak podla tvojho zdrojku .. a ten je v src .... a ak ma tvoj zdrojak(txt) viac ako 5mb tak klobuk dole  :xmas: ..

podla mna sa nerobi.....ak si vsimnes ten skript na kontrolu zadani kontroluje aj strukturu a obsah priecinkov. Ak mas zlu strukturu vypise to v logu. Takze ked tam das len src/ vyhodi chybu a originalita sa netestuje. Tolko moj nazor. Opravte ma ak sa mylim
Title: Re: OOP - "spešl zadanie"
Post by: RiTChi on 09.01.2012, 03:23:08
napisem to jasnejsie .. neviem ci sa robi kontrola originality .. a ak ano tak podla tvojho zdrojku .. a ten je v src .... a ak ma tvoj zdrojak(txt) viac ako 5mb tak klobuk dole  :xmas: ..

podla mna sa nerobi.....ak si vsimnes ten skript na kontrolu zadani kontroluje aj strukturu a obsah priecinkov. Ak mas zlu strukturu vypise to v logu. Takze ked tam das len src/ vyhodi chybu a originalita sa netestuje. Tolko moj nazor. Opravte ma ak sa mylim

Pokiaľ viem, máš pravdu.
Title: Re: OOP - "spešl zadanie"
Post by: mino on 09.01.2012, 03:48:45
Už ste to tam niekto upli? :D
Title: Re: OOP - "spešl zadanie"
Post by: petonet on 09.01.2012, 03:56:23
Už ste to tam niekto upli? :D


Neupli:-D:-D oficialne prehlasujem ze to nikam neuploadujem!:-D Bola mi odopreta tato moznost a ked to niekomu bude vadit pojdem na sud do Strasburgu:-D
Title: Re: OOP - "spešl zadanie"
Post by: Mitwoc on 09.01.2012, 04:05:12
len aby ti potom nebola odopreta aj moznost ist na skusku  :D
Title: Re: OOP - "spešl zadanie"
Post by: petonet on 09.01.2012, 04:08:07
To je len o dovod viac ist na sud do Strasburgu!:-D mozno vysudim titul:-D
Title: Re: OOP - "spešl zadanie"
Post by: mino on 09.01.2012, 04:20:19
A idete to zajtra odovzdať, ked ste to neupli? Ci ako teraz?  :trestac:
Title: Re: OOP - "spešl zadanie"
Post by: petonet on 09.01.2012, 04:22:47
JJ ja idem. Na mojom kode vidno ze to je original. :buttrock: :buttrock: a prinajhorsom precestujem 40 km aby ma stamade vyhodil:-d
Title: Re: OOP - "spešl zadanie"
Post by: RiTChi on 09.01.2012, 05:48:39
Aj ja idem, keď som kôli tomu už došiel do KE.
Title: Re: OOP - "spešl zadanie"
Post by: mino on 10.01.2012, 00:01:47
Pre tych, co neboli dnes a idu az 12.:  :)
- Balicky sa kopirovali na Binasov flashdisk, cize uz netreba stresovat kvoli velkosti >5MB :D
- Otazky pri odovzdavani typu, co som ako robil => kto to robil, nema problem... :thumbs-up:
Title: Re: OOP - "spešl zadanie"
Post by: test on 10.01.2012, 00:06:17
za blekosvkovky mame 10b a prakticka skuska neje .. ako to z hodnotenim .. vravel vam hned aj aky mate zapich ??
Title: Re: OOP - "spešl zadanie"
Post by: mino on 10.01.2012, 00:22:22
Ved za bleskovky mame 20b, nie 10b. A co sa tyka skusky, nemame prakticku cast, mame tych 10b automaticky, pokial som dobre pochopil Binasa.
Title: Re: OOP - "spešl zadanie"
Post by: Domino_666 on 11.01.2012, 06:30:10
Keď robím dokumentáciu: NetBeans mi ponúka pomoc a generuje mi čo tam treba vpísať (našťastie  ;D ) ale čo všetko treba?
Príklad: mám interface, z neho dedí abstraktná trieda a z nej jedna posledná trieda. Všade je napr. metóda update(parametre); - k nej mám spraviť tú dokumentáciu všade, teda v rozhraní, abstr. triede aj v tej poslednej? Alebo to stačí raz?
Title: Re: OOP - "spešl zadanie"
Post by: Cici on 11.01.2012, 07:47:23
Overridy netreba. Vlastne stačí len to kde je "public" a nie je @Override :D
Title: Re: OOP - "spešl zadanie"
Post by: Agamemnon on 11.01.2012, 14:56:08
override dokumentuj vtedy, ak menia vyrazne to, co sa predpoklada, ze by mali robit... urcite to nebude casto, ale obcas sa to moze stat...
Title: Re: OOP - "spešl zadanie"
Post by: test on 13.01.2012, 18:44:38
ako sa vola metoda ktora automaticky posuva mapu ?