TlačiťTlačiť Slovenčina English Hľadať RSS

© 2005 – 2024 Roman Horváth, všetky práva vyhradené. Dnes je 4. 5. 2024.

Stránka sa načítava, prosím čakajte…

Dátum: 27. 2. 2019, pred piatimi rokmi

~

import knižnica.*;

public class PohyblivýKruh extends GRobot
{
	private PohyblivýKruh()
	{
		hrúbkaČiary(2);
		veľkosť(20);
		farba(zelená);
		zdvihniPero();
		aktivuj();
	}

	@Override public void kresliTvar()
	{
		krúžok();
	}

	@Override public void stlačenieKlávesu()
	{
		switch (ÚdajeUdalostí.kláves())
		{
		case Kláves.VĽAVO: rýchlosťPosunu(-10); break;
		case Kláves.VPRAVO: rýchlosťPosunu(10); break;
		case Kláves.HORE: rýchlosť(20); break;
		case Kláves.DOLE: rýchlosť(-20); break;
		}
	}

	@Override public void uvoľnenieKlávesu()
	{
		switch (ÚdajeUdalostí.kláves())
		{
		case Kláves.VĽAVO: case Kláves.VPRAVO:
			rýchlosťPosunu(0); break;

		case Kláves.HORE: case Kláves.DOLE:
			rýchlosť(0); break;
		}
	}

	@Override public void ťahanieMyšou()
	{
		rýchlosť(10);
		cieľNaMyš();
	}

	public static void main(String[] args)
	{
		Svet.použiKonfiguráciu("PohyblivýKruh.cfg");
		new PohyblivýKruh();
	}
}

Ukážka

obrázok

Zelená kružnica zareaguje na kliknutie myšou na plochu tak, že sa začne pomaly (svojou rýchlosťou) presúvať na pozíciu, na ktorú bolo kliknuté.

Poznámka: Framework je naprogramovaný tak, aby objekt, ktorý sa k cieľu priblíži pod hranicu svojej rýchlosti okamžite preskočil na cieľovú pozíciu a zastavil. Má sa tým zabrániť neželaným „blúdeniam“ objektov v okolí ich cieľov. Vedľajším efektom je, že ak sa v tomto príklade myšou dostatočne opatrne pohybujeme v perimetri úmernom rýchlosti objektu (zelenej kružnice), dokážeme objekt „oklamať“ a pohybovať ním myšou aj rýchlejšie, než je jeho maximálna povolená rýchlosť. (Určovanie cieľovej pozície objektov však nebolo zamýšľané na použitie s ťahaním myšou, ani to nedáva zmysel.)