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

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

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

Dátum: 4. 8. 2018, pred niekoľkými rokmi, aktualizované: 30. 7. 2020, pred štyrmi rokmi

Projekt ukazuje jednoduchú implementáciu ovládania robota klávesnicou (kurzorovými šípkami) s pridaním niekoľkých spestrujúcich prvkov:

  • zmena polohy pera (položenie/zdvihnutie medzerníkom; predvolene je, v tomto projekte, pero zdvihnuté),
  • zmena hrúbky čiary (klávesmi 1 až 3; tento robot má predvolenú hrúbku pera 1,5 bodu),
  • zmena farby pera (klávesmi Q, W, E, R; tento robot má predvolenú modrú farbu pera).

Zmena farby a hrúbky čiary pera je automaticky premietnutá do kreslenia tvaru robota (v prípade hrúbky čiary len pri dutom tvare robota). Zmena polohy pera je indikovaná programovo – zmenou kreslenia dutého (pri zdvihnutom pere) alebo vyplneného (pri položenom pere) tvaru.

~

import knižnica.GRobot;

import static knižnica.Svet.*;
import static knižnica.Kláves.*;
import static knižnica.ÚdajeUdalostí.*;

public class ChodiacaFarbička extends GRobot
{
	private ChodiacaFarbička()
	{
		super(400, 300);
		zdvihniPero();
		predvolenýTvar(false);
		hrúbkaČiary(1.5);
		farba(modrá);
		ohranič();
	}

	@Override public void stlačenieKlávesu()
	{
		switch (kláves())
		{
			case HORE:   rýchlosť(10.0);        break;
			case DOLE:   rýchlosť(-10.0);       break;
			case VPRAVO: uhlováRýchlosť(-15.0); break;
			case VĽAVO:  uhlováRýchlosť(15.0);  break;

			case MEDZERA:
				if (peroPoložené())
				{
					zdvihniPero();
					predvolenýTvar(false);
				}
				else
				{
					položPero();
					predvolenýTvar(true);
				}
				break;

			case VK_NUMPAD1: case VK_1: hrúbkaČiary(0.5); break;
			case VK_NUMPAD2: case VK_2: hrúbkaČiary(1.5); break;
			case VK_NUMPAD3: case VK_3: hrúbkaČiary(3.0); break;

			case VK_Q: farba(červená); break;
			case VK_W: farba(zelená);  break;
			case VK_E: farba(modrá);   break;
			case VK_R: farba(čierna);  break;
		}
	}

	@Override public void uvoľnenieKlávesu()
	{
		switch (kláves())
		{
			case HORE: case DOLE:
				rýchlosť(0.0);
				break;

			case VPRAVO: case VĽAVO:
				uhlováRýchlosť(0.0);
				break;
		}
	}

	public static void main(String[] args)
	{
		použiKonfiguráciu();
		new ChodiacaFarbička();
		if (prvéSpustenie()) zbaľ();
	}
}

Výsledok

obrázok 
Ukážka okna po spustení a chvíľke „hrania.“