[ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.10.11
Prihlásený: 29.12.20
Príspevky: 284
Témy: 96 | 96
Bydlisko: Dlhé nad Ci...
NapísalOffline : 29.11.2015 15:22 | Java praca s objetami

Robím jedno zadanie, a neviem si už rady. Zbieram diamanty v jednej 2D hre, ale môžem ich zbierať iba po jednom, vysvetlenie :D :
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.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 29.11.2015 16:00 | Java praca s objetami

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!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.10.11
Prihlásený: 29.12.20
Príspevky: 284
Témy: 96 | 96
Bydlisko: Dlhé nad Ci...
Napísal autor témyOffline : 29.11.2015 16:23 | Java praca s objetami

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.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 29.11.2015 16:29 | Java praca s objetami

Java List https://docs.oracle.com/javase/7/docs/api/java/util/List.html

A 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!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.10.11
Prihlásený: 29.12.20
Príspevky: 284
Témy: 96 | 96
Bydlisko: Dlhé nad Ci...
Napísal autor témyOffline : 29.11.2015 16:38 | Java praca s objetami

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 :D


 [ Príspevkov: 5 ] 


Java praca s objetami



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Java + OpenGL - bakalárska práca

v Backend

0

373

01.10.2014 12:03

Svolo

V tomto fóre nie sú ďalšie neprečítané témy.

Java - Praca s databazou SQL

v Backend

4

641

26.11.2012 1:18

walther

V tomto fóre nie sú ďalšie neprečítané témy.

PC zostava 2000€ práca s videom, programovanie, práca v photoshope atď...

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PC zostavy

37

2119

25.01.2017 9:44

Xaltotun

V tomto fóre nie sú ďalšie neprečítané témy.

Rozdiel medzi Java Standard a Java EE

v Backend

1

992

02.04.2014 12:41

XOLOO

V tomto fóre nie sú ďalšie neprečítané témy.

dobre java navody a nova tema JAVA

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Backend

35

5716

09.03.2009 17:14

tlacitko Enter

V tomto fóre nie sú ďalšie neprečítané témy.

JAVA - java.lang.NullPointerException

v Backend

1

1186

04.01.2010 17:05

emigrate

V tomto fóre nie sú ďalšie neprečítané témy.

Praca

v Ponuka a dopyt práce

0

1706

09.06.2008 13:41

Jurdo

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.

Programator praca

v Backend

16

1948

21.01.2014 19:52

ac.milan

V tomto fóre nie sú ďalšie neprečítané témy.

praca svideom

v Video programy

3

731

04.08.2008 19:30

Mandy

V tomto fóre nie sú ďalšie neprečítané témy.

Práca pilota

v Diskusia

15

3391

18.04.2011 7:02

Jarkou

V tomto fóre nie sú ďalšie neprečítané témy.

Praca zahranicie

v Diskusia

20

1998

21.01.2011 7:49

vladopt

V tomto fóre nie sú ďalšie neprečítané témy.

Práca RAM

v Pamäte

1

431

02.12.2012 2:30

AdrianVAIO

V tomto fóre nie sú ďalšie neprečítané témy.

Bakalarska práca

v Diskusia

0

417

26.10.2020 11:23

DanielH

V tomto fóre nie sú ďalšie neprečítané témy.

c++ praca

v Backend

8

1127

11.07.2011 14:35

marian_r

V tomto fóre nie sú ďalšie neprečítané témy.

J2ME Práca

v Ponuka a dopyt práce

0

716

02.02.2012 13:32

exet

V tomto fóre nie sú ďalšie neprečítané témy.

praca - neplnoletost

v Ostatné

3

762

16.04.2009 17:51

tomxi



© 2005 - 2026 PCforum, edited by JanoF