Greenfoot
Z MiS
				
				
				(Rozdíly mezi verzemi)
				
																
				
				
								
				| m (→Náhodná čísla:  Doplnění) |  (→Řešení situací:  Přidáno mizení actorů) | ||
| Řádka 60: | Řádka 60: | ||
| ; Zdi | ; Zdi | ||
| ; Mizení Actorů | ; Mizení Actorů | ||
| + | K mizení slouží metoda: | ||
|   MouseWorld.removeObject(Actor kdoMaZmizet) |   MouseWorld.removeObject(Actor kdoMaZmizet) | ||
| + | Příklad: | ||
| + |  private void sezerVsechnyKolidujici() { | ||
| + |     World svet = this.getWorld(); | ||
| + |     List<Actor> seznam = this.getIntersectingObjects(null);  | ||
| + |     for (Actor prvek : seznam) { | ||
| + |        prvek.aplikuj(this); | ||
| + |        svet.removeObject(prvek); | ||
| + |     } | ||
| + | |||
| ; Změna obrázku Actoru | ; Změna obrázku Actoru | ||
| ; Výpis stavu hry, hlášky | ; Výpis stavu hry, hlášky | ||
Verze z 16. 12. 2013, 08:06
| Obsah | 
Co je to Greenfoot?
Dokumentaci tříd najdete na adrese:
Svět a volání metod act()
- Nastavení pozadí hrací plochy
- Například v konstruktoru našeho potomka třídy World můžeme zavolat:
World.setBackground(GreenfootImage obrazek)
Vytvoření a přidání Actorů
- Prvky jsou potomky třídy Actor.
- Instance vytváříme klasicky (new).
- Umístění na plochu:
- World.addObject(Actor actor, int x, int y)
- umístí na pozici (x, y)
 
Pohyb Actora
Máme dvě varianty ovládání prvku (actora):
- turn() + move() + setRotation()
-  realizuje relativní pozicování
- turn(int oKolik)
- otáčí o daný počet stupňů ve směru hodinových ručiček
 
 
- turn(int oKolik)
- x + y + setLocation()
 
-  realizuje relativní pozicování
- Příklad viz dále.
Reakce na klávesy
- Greenfoot.getKey()
- vrací null když nebyla stisknuta žádná
 
- Příklad viz dále.
Příklad: Pohyb podle kláves
String vstup = Greenfoot.getKey();
if (vstup != null) {
   if (vstup.equals("right")) {
      this.setRotation(0);
   } else if (vstup.equals("left")) {
      this.setRotation(180);
   } else if (vstup.equals("up")) {
      this.setRotation(-90);
   } else if (vstup.equals("down")) {
      this.setRotation(90);
   }
   this.move(1);
}
Náhodná čísla
- Standardní řešení Javy
-  Math.random()... vrací čísla z intervalu <0, 1)
- Řešení Greenfootu
- Pro hry je často potřeba generovat celá čísla. Pro zjednodušení je tedy v Greenfootu metoda:
-  Greenfoot.getRandomNumber(int limit)- Vrací čísla z množiny {0, 1, ..., limit-1}.
 
Zjištění kolize prvků ve hře
- pole
Řešení situací
- Zdi
- Mizení Actorů
K mizení slouží metoda:
MouseWorld.removeObject(Actor kdoMaZmizet)
Příklad:
private void sezerVsechnyKolidujici() {
   World svet = this.getWorld();
   List<Actor> seznam = this.getIntersectingObjects(null); 
   for (Actor prvek : seznam) {
      prvek.aplikuj(this);
      svet.removeObject(prvek);
   }
- Změna obrázku Actoru
- Výpis stavu hry, hlášky
Úkol: Vytvořte hru!
- Vytvořte hru, na které ukážete ty prvky práce v Greenfootu, které jsme si ukázali výše.
