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.