Stránka sa načítava, prosím čakajte…
© 2005 – 2024 Roman Horváth, všetky práva vyhradené. Dnes je 3. 5. 2024.
Dátum: 25. 4. 2019, pred piatimi rokmi
~
import knižnica.*; public class Uhýbač extends GRobot { private final static Zoznam<Prekážka> prekážky = new Zoznam<>(); private Uhýbač() { veľkosť(15); hrúbkaČiary(10); nováPrekážka(); } public static void nováPrekážka() { if (prekážky.veľkosť() < 10) prekážky.pridaj(new Prekážka()); } @Override public void kresliTvar() { krúžok(); } @Override public void pohybMyši() { skočNa(ÚdajeUdalostí.polohaMyšiX(), Svet.najmenšieY()); } @Override public void tik() { for (Prekážka prekážka : prekážky) { if (prekážka.koliduje(this)) { farba(červená); return; } } farba(čierna); } public static void main(String[] args) { Svet.použiKonfiguráciu("Uhýbač.cfg"); Svet.skry(); Svet.nekresli(); new Uhýbač(); Svet.zbaľ(); Svet.kresli(); Svet.zobraz(); } }
~
import knižnica.*; public class Prekážka extends GRobot { private boolean generujNovúPrekážku = true; public Prekážka() { hrúbkaČiary(10); zdvihniPero(); gyroskop(90.0); zrýchlenie(0.1); maximálnaRýchlosť(20); dosiahnutieCieľa(); } @Override public void kresliTvar() { obdĺžnik(0.8); } @Override public boolean koliduje(GRobot iný) { return bodVObdĺžniku(iný, 0.8); } @Override public void aktivita() { if (generujNovúPrekážku && polohaY() < Svet.najväčšieY() / 3) { generujNovúPrekážku = false; Uhýbač.nováPrekážka(); } veľkosť( (-polohaY() + Svet.najväčšieY()) * 100 / (Svet.najväčšieY() - Svet.najmenšieY())); } @Override public void dosiahnutieCieľa() { rýchlosť(0); skočNa(0, Svet.najväčšieY()); cieľ(Svet.náhodnéReálneČíslo(Svet.najmenšieX(), Svet.najväčšieX()), Svet.najmenšieY() - 150); } }
Ukážka
Zvrchu „padajú“ zväčšujúce sa prekážky, čím budia dojem, že sa približujú (čo by sa dalo ešte umocniť zmenou poradia kreslenia robotov a kreslením vyplnených tvarov). Krúžok v spodnej časti obrazovky je ovládaný polohou myši. Po kolízii s prekážkou sa nestane nič, okrem toho, že krúžok sčervená. (Musela by byť doprogramovaná zmysluplnejšia akcia.)