Stránka sa načítava, prosím čakajte…
© 2005 – 2024 Roman Horváth, všetky práva vyhradené. Dnes je 20. 4. 2024.
Dátum: 12. 8. 2021, pred tromi rokmi
~
import knižnica.*; public class Dážď extends GRobot { public class Kvapka extends Častica { public double rýchlosť = 0; } public class MiniLCG { private int x = 13; public int daj() { return x = (31 * x + 19) % 50; } public void nech(int x0) { x = x0; } public MiniLCG(int x0) { x = x0; } public MiniLCG() {} } private int x0 = 1; private int y0 = 2; private int r0 = 4; private MiniLCG xLCG = new MiniLCG(x0); private MiniLCG yLCG = new MiniLCG(y0); private MiniLCG rLCG = new MiniLCG(r0); private Kvapka[] kvapky = new Kvapka[50]; private final Tlačidlo xp, yp, rp; private final Tlačidlo xm, ym, rm; private boolean spustené = false; private Dážď() { super(400, 400); ohranič(); skry(); smer(240); spôsobKreslenia(KRESLI_NA_STRED); inicializuj(); xp = new Tlačidlo("x+"); xm = new Tlačidlo("x−"); yp = new Tlačidlo("y+"); ym = new Tlačidlo("y−"); rp = new Tlačidlo("r+"); rm = new Tlačidlo("r−"); xp.šírka(46); xm.šírka(46); yp.šírka(46); ym.šírka(46); rp.šírka(46); rm.šírka(46); xp.skoč(-123, 180); xm.skoč(-173, 180); yp.skoč(173, 180); ym.skoč(123, 180); rp.skoč( 25, -180); rm.skoč(-25, -180); Svet.spustiČasovač(0.080); } @Override public void voľbaTlačidla() { if (xp.aktivované()) { if (++x0 > 49) x0 = 0; inicializuj(); } else if (yp.aktivované()) { if (++y0 > 49) y0 = 0; inicializuj(); } else if (rp.aktivované()) { if (++r0 > 49) r0 = 0; inicializuj(); } else if (xm.aktivované()) { if (--x0 < 0) x0 = 49; inicializuj(); } else if (ym.aktivované()) { if (--y0 < 0) y0 = 49; inicializuj(); } else if (rm.aktivované()) { if (--r0 < 0) r0 = 49; inicializuj(); } } private void inicializuj() { xLCG.nech(x0); yLCG.nech(y0); rLCG.nech(r0); for (int i = 0; i < kvapky.length; ++i) { Kvapka kvapka = new Kvapka(); kvapka.x = 8 * (25 - xLCG.daj()); kvapka.y = 8 * (-25 + yLCG.daj()); kvapka.uhol = smer(); kvapka.rýchlosť = 10 + rLCG.daj(); kvapky[i] = kvapka; } prekresli(); } private void pohni() { Svet.nekresli(); for (int i = 0; i < kvapky.length; ++i) { Kvapka kvapka = kvapky[i]; skočNa(kvapka); uhol(kvapka); skoč(kvapka.rýchlosť); kvapka.poloha(this); } Svet.kresli(); prekresli(); } private void prekresli() { Svet.nekresli(); Svet.vymaž(); for (int i = 0; i < kvapky.length; ++i) { Kvapka kvapka = kvapky[i]; skočNa(kvapka); uhol(kvapka); vpred(kvapka.rýchlosť); } skočNa(0, 180); text("x0: " + x0 + "; y0: " + y0 + "; r0: " + r0); Svet.kresli(); } @Override public void tik() { if (spustené) pohni(); } @Override public void klik() { spustené = !spustené; } public static void main(String[] args) { Svet.použiKonfiguráciu("Dážď.cfg"); new Dážď(); } }
Ukážka vzhľadu po spustení.