Greenfoot

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Změna obrázku Actoru: Doplněn text k nadpisu)
(Mizení Actorů: Oprava MouseWorld -> World + dodán příklad, kam umístit test na zmizení actoru)
Řádka 104: Řádka 104:
 
=== Mizení Actorů ===
 
=== Mizení Actorů ===
 
K mizení slouží metoda:
 
K mizení slouží metoda:
  MouseWorld.removeObject(Actor kdoMaZmizet)
+
  World.removeObject(Actor kdoMaZmizet)
  
; Příklad 1) zrušení kolidujících actorů
+
; Příklad 1) Zrušení kolidujících actorů
 
  private void sezerVsechnyKolidujici() {
 
  private void sezerVsechnyKolidujici() {
 
     World svet = this.getWorld();
 
     World svet = this.getWorld();
Řádka 115: Řádka 115:
 
     }
 
     }
  
; Příklad 2) zrušení actoru, který vyjel mimo obrazovku na levém okraji
+
; Příklad 2) Zrušení actoru, který vyjel mimo obrazovku na levém okraji
  if (this.getX() < 1) {
+
  public void act() {
    World svet = this.getWorld();
+
    // ...
    if (svet != null) {
+
    if (this.getX() < 1) {
        this.getWorld().removeObject(this);
+
        World svet = this.getWorld();
 +
        if (svet != null) {
 +
            this.getWorld().removeObject(this);
 +
        }
 
     }
 
     }
 
  }
 
  }
+
 
 
=== Změna obrázku Actoru ===
 
=== Změna obrázku Actoru ===
  

Verze z 20. 1. 2014, 11:27


Obsah

Co je to Greenfoot?

Dokumentaci tříd najdete na adrese:

Svět a volání metod act()

Nastavení pozadí hrací plochy
World.setBackground(GreenfootImage obrazek)

Vytvoření a přidání Actorů

Pohyb Actora

Máme dvě varianty ovládání prvku (actora):

Relativní pozicování
Absolutní pozicování
Příklad
vytvoření metody move(int dx, int dy)
   public void act() 
   {
       this.move(3,-1);
   }
   
   private void move(int dx, int dy) {
       int cilX = this.getX()+dx;
       int cilY = this.getY()+dy;
       this.turnTowards(cilX, cilY);
       this.setLocation(cilX, cilY);
   }

Reakce na klávesy

String Greenfoot.getKey()

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
Řešení Greenfootu

Zjištění kolize prvků ve hře

Výběr třídy
List<Actor> seznam = this.getIntersectingObjects(null); 
List<Zradlo> seznam = this.getIntersectingObjects(Zradlo.class);
Návratová hodnota
getOneIntersectingObject(class)
getOneObjectAtOffset(int dx, int dy, class)
private void vyresKolidujici() {
   List<Actor> seznam = this.getIntersectingObjects(null); 
   for (Actor prvek : seznam) {
      prvek.aplikuj(this);
   }
}
Filtr

Řešení situací

Zdi

Mizení Actorů

K mizení slouží metoda:

World.removeObject(Actor kdoMaZmizet)
Příklad 1) Zrušení kolidujících actorů
private void sezerVsechnyKolidujici() {
   World svet = this.getWorld();
   List<Actor> seznam = this.getIntersectingObjects(null); 
   for (Actor prvek : seznam) {
      prvek.aplikuj(this);
      svet.removeObject(prvek);
   }
Příklad 2) Zrušení actoru, který vyjel mimo obrazovku na levém okraji
public void act() {
    // ...
    if (this.getX() < 1) {
        World svet = this.getWorld();
        if (svet != null) {
            this.getWorld().removeObject(this);
        }
    }
}

Změna obrázku Actoru

Ke změně obrázku slouží metody:

Actor.setImage(GreenfootImage novyObrazek)
Actor.setImage(String cestaKNovemuObrazku)

Pokud zadáme cestu k obrázku, obrázek se hledá v podsložce images složky s projektem.

Příklad 1) Otočení vlevo či vpravo
class Panacek extends Actor
    GreenfootImage imgVlevo = new GreenfootImage("imgVlevo.png");
    // ...
    public void act() {
        // ...
        if (Greenfoot.isKeyDown("left")) {
            this.setLocation(this.getX()-1, this.getY());
            this.setImage(imgVlevo);
        }
        // ...
    }
}

Výpis stavu hry, hlášky

Úkol: Vytvořte hru!

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje