[ 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

387

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

663

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

2160

25.01.2017 9:44

Xaltotun

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

5771

09.03.2009 17:14

tlacitko Enter

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

Rozdiel medzi Java Standard a Java EE

v Backend

1

1009

02.04.2014 12:41

XOLOO

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

JAVA - java.lang.NullPointerException

v Backend

1

1219

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

1730

09.06.2008 13:41

Jurdo

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

Praca zahranicie

v Diskusia

20

2019

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

464

02.12.2012 2:30

AdrianVAIO

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

c++ praca

v Backend

8

1152

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

749

02.02.2012 13:32

exet

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

praca - neplnoletost

v Ostatné

3

781

16.04.2009 17:51

tomxi

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

Programator praca

v Backend

16

1974

21.01.2014 19:52

ac.milan

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

Bakalarska práca

v Diskusia

0

445

26.10.2020 11:23

DanielH

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

praca svideom

v Video programy

3

744

04.08.2008 19:30

Mandy

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

Práca pilota

v Diskusia

15

3424

18.04.2011 7:02

Jarkou



© 2005 - 2026 PCforum, edited by JanoF