| | |
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Autor | Správa |
---|
Registrovaný: 24.10.11 Prihlásený: 29.12.20 Príspevky: 284 Témy: 96 Bydlisko: Dlhé nad Ci... |
Robím jedno zadanie, a neviem si už rady. Zbieram diamanty v jednej 2D hre, ale môžem ich zbierať iba po jednom, vysvetlenie : Class MagicLand Kód: private Diamond diamond; private Diamond diamond1; private Diamond diamond2; diamond = new Diamond(); diamond.setPosition(50,25); world.addActor(diamond);
diamond1 = new Diamond(); diamond1.setPosition(200,25); world.addActor(diamond1);
diamond2 = new Diamond(); diamond2.setPosition(300,25); world.addActor(diamond2); Je to len jej časť samozrejme. Vytvorím tam diamant dám mu pozíciu a vložím ho do worldu. Class dizzy Kód: private Actor diamond; for (Actor diamond : getWorld()) { if (diamond instanceof Diamond) { this.diamond = diamond; } } World v sebe obsahuje list všetkých "Actorov", ktorých som pridal, čiže aj všetky diamanty. Tento cyklus vezme každého actora a checkne, či je to diamant (instanceof Diamond) ak áno, tak ho vloží do mojej premennej diamond v Class dizzy. Potom v class dizzy pracujem s diamantom, keď je dizzy v blízkosti a stlacim enter tak zmizne diamant a nieco sa stane (to je nepodstatne co) Problém je v tom, že stále je v tej premennej (dizzy) diamond uložený len jeden diamant a to je zle, lebo stále je tam náhodný diamant (no nie uplne nahodny) A ja keď k diamantu pridem s dizzym a dam enter tak sa nič nestane, lebo tam je prave iny diamant a suradnice dizziho sa neprekrivaju s diamantom, hoci sa mozno prekrivaju s (class Magicland) diamantom1 /diamantom2.... Nejaké nápady ako to vyriešiť? rozmýšľal som nad pridávanim diamantov do nejakeho poľa napr. ale ako ich do toho pola dávať? To si musím v Dizzy vytvorit tolko premennych, ktolko ich je v MagicWorlde? To mi pride take divne riesenie a aj tak by bol problém s tým forom, ktorý priraduje diamanty.
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 29.11.2015 16:00 | |
|
Nepochopil som tomu úplne, ale áno, určite si musíš všetky diamanty uložiť do poľa a iného, než sú hráči (to je ten dizzy?). Takže vo Worlde máš pole hráčov a pole diamantov. A kontrola je potom jednoduchá - porovnanie každý hráč s každým diamantom cez dva vnorené cykly. Ak chceš vedieť presne, ktoré diamany boli zobrané ktorým hráčom, tak aj hráč má v sebe pole diamantov, ktoré je na začiatku prázdne.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 24.10.11 Prihlásený: 29.12.20 Príspevky: 284 Témy: 96 Bydlisko: Dlhé nad Ci... | Napísal autor témy kemperik: 29.11.2015 16:23 | |
|
Už asi viem ako na to, ale otázka dĺžku poľa musím na začiatku poznať nie je nejaká údajová štruktúra, ktorá by na to bola lepšia ako obyč. pole? Najlepšie taká, ktorá už je v jave spravená a si len zavolám metódy. Vo worlde sú všetky objekty(aj hráč aj diamanty,vytahy...). Diamanty vyberám tak, že sa vezme objekt(z worldu) xxxx instanceof Diamond. To zistí, či to je objekt vytvorený z class Diamond a ak áno tak mi ho dá do premennej v Hráčovy (dizzy) a potom už porovnávam súradnice dizztho a diamantu (a ďalšie podmienky). Jednoducho potrebujem referencie na tie diamanty dostat do Dizzy, aby som ich porovnaval s dizzym.
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 29.11.2015 16:29 | |
|
Java List https://docs.oracle.com/javase/7/docs/api/java/util/List.htmlA ešte jedna vec - instanceof je hovadina, nepoužívaj to. Ako som písal, sprav si pole diamantov, pole hráčov a trebárs pole objektov (dynamických/statických), ktoré tvoria mapu. Na všetko využívaj dedičnosť a polymorfizmus. S tým ti žiadne instanceof netreba.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 24.10.11 Prihlásený: 29.12.20 Príspevky: 284 Témy: 96 Bydlisko: Dlhé nad Ci... | Napísal autor témy kemperik: 29.11.2015 16:38 | |
|
Bohuzial World uz som dostal vyvorený a musím s ním pracovat, to bol moj prvy napad si spravit vo worlde metodu na vracanie diamantov
|
|
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Java + OpenGL - bakalárska práca v Assembler, C, C++, Pascal, Java | 0 | 292 | 01.10.2014 12:03 Svolo | | Java - Praca s databazou SQL v Assembler, C, C++, Pascal, Java | 4 | 553 | 26.11.2012 1:18 walther | | PC zostava 2000€ práca s videom, programovanie, práca v photoshope atď... [ Choď na stránku: 1, 2 ] v PC zostavy | 37 | 1802 | 25.01.2017 9:44 Xaltotun | | dobre java navody a nova tema JAVA [ Choď na stránku: 1, 2 ] v Assembler, C, C++, Pascal, Java | 35 | 5440 | 09.03.2009 17:14 tlacitko Enter | | Rozdiel medzi Java Standard a Java EE v Assembler, C, C++, Pascal, Java | 1 | 844 | 02.04.2014 12:41 XOLOO | | JAVA - java.lang.NullPointerException v Assembler, C, C++, Pascal, Java | 1 | 1084 | 04.01.2010 17:05 emigrate | | Praca v Ponuka práce | 0 | 1557 | 09.06.2008 13:41 Jurdo | | Praca zahranicie v Ekonomika, práca, biznis, podnikanie a peniaze | 20 | 1836 | 21.01.2011 7:49 vladopt | | Práca RAM v Pamäte | 1 | 326 | 02.12.2012 2:30 AdrianVAIO | | Bakalarska práca v Vzdelanie, štúdium, škola | 0 | 309 | 26.10.2020 11:23 DanielH | | c++ praca v Assembler, C, C++, Pascal, Java | 8 | 994 | 11.07.2011 14:35 marian_r | | J2ME Práca v Ponuka práce | 0 | 587 | 02.02.2012 13:32 exet | | praca - neplnoletost v Ostatné | 3 | 651 | 16.04.2009 17:51 tomxi | | Programator praca v Assembler, C, C++, Pascal, Java | 16 | 1777 | 21.01.2014 19:52 ac.milan | | praca svideom v Video programy | 3 | 642 | 04.08.2008 19:30 Mandy | | Práca pilota v Ekonomika, práca, biznis, podnikanie a peniaze | 15 | 3179 | 18.04.2011 7:02 Jarkou |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|