Diskuze: Processing / java random rada

Ostatní jazyky Ostatní programovací jazyky Processing / java random rada

Avatar
kuba.na
Člen
Avatar
kuba.na:

Ahoj chci se zeptat.. Dělám hru kde mám 3 život na začátku.. Když mi život ubyde tak se na nahodných X,Y (random x , y) vytvoří obrázek... Akorát já celou funkci vyvolávám v draw(Velka třida opakující se pořád dokola.. main) a ten život který vy musíte chytit aby se vám příčet se tam furt hejbe protože se X,Y stále mění.. Je nějaká možnost stopnout random do doby než budu mít zase 2 životy? Snad mě chápete.. Děkuji za radu

 
Odpovědět 8.6.2015 20:32
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na kuba.na
Martin Dráb:

To mi přijde spíš jako špatně navržený program. "Zastavovat" náhodné generování tak, jak by sis přál, je špatné řešení problému. I kdyby náhodou teď fungovalo, v budoucnu se vrátí i s úroky.

AKdyž tak nad tím rychle přemýšlím, tak by asi bylo nejlepší si pamatovat předměty na jednotlivých pozicích herního plánu (například mít matici/pole N x M, kde na pozici [x,y] by byl odkaz na objekt reprezentující předmět, co na daném políčku leží). Pokud nastane nutnost vygenerovat na náhodou pozici předmět (třeba ten život), tak jej prostě přiřadíš na dané místo herního plánu. Tzn. náhodně budeš jeho pozici generovat jen jednou.

Metoda Draw by se podle jejího názvu měla starat pouze o vykreslování, ne o vnitřní herní logiku.

Nahoru Odpovědět 8.6.2015 21:04
2 + 2 = 5 for extremely large values of 2
Avatar
kuba.na
Člen
Avatar
Odpovídá na Martin Dráb
kuba.na:

v Processingu jsou dvě třdy - setup - proběhnout jen na začátku programu a draw - běží stále dokola.. mám normálně
public void xxxxxxx(){
if(zivoty == 2){obrazek(ran­domX,randomY)}
}
Takhle nějak jakoby to je...akorát nevim kam správě dát ten random..

 
Nahoru Odpovědět 8.6.2015 21:10
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na kuba.na
Martin Dráb:

v Processingu jsou dvě třdy - setup - proběhnout jen na začátku programu a draw - běží stále

Spíš myslíš metody, ne třídy. Každopádně, co ti brání udělat si třídu vlastní? Asi by mohla být vnořená i do toho Processingu, pokud bys chtěl.

Jak řešíš změnu (úbytek) životů? To musí být přece jednorázová akce mimo metodu draw, ne?

Nahoru Odpovědět 8.6.2015 23:16
2 + 2 = 5 for extremely large values of 2
Avatar
kuba.na
Člen
Avatar
Odpovídá na Martin Dráb
kuba.na:

Mám hru na chytání flašek... A úbytek životů řeším kolizema.. jestli je chytim tak +score jestli ne tak -hp... Ano metoda, promin... Jinak mam třídu životy a v ní metody na ubývání,chyání atd..

 
Nahoru Odpovědět 9.6.2015 12:50
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 5 zpráv z 5.