Skip to content

10. Invocați o metodă a lumii

Invocarea unei metode a lumii în Greenfoot este esențială pentru gestionarea și manipularea întregului context al scenariului. Vom explora cum să invoci o metodă a lumii în cadrul proiectului Greenfoot. Vom lua ca exemplu o metodă simplă care modifică proprietățile lumii.

Exemplu Practic: Invocarea unei Metode a Lumii

1. Deschideți Greenfoot:

  • Deschide aplicația Greenfoot pe computerul dvs.

2. Accesați Bara de Instrumente:

  • Găsiți bara de instrumente în partea de jos a ecranului Greenfoot.

3. Selectați Instrumentul de Adăugare Actor:

  • Alegeți instrumentul de adăugare actor, de obicei un simbol de plus, din bara de instrumente.

4. Alegeți un Actor pentru a Reprezenta Lumea:

  • Selectați sau creați un actor care va reprezenta lumea în proiectul dvs.

5. Deschideți Fișierul Java al Lumii:

  • Deschideți fișierul Java asociat actorului care reprezintă lumea. Acesta este fișierul care extinde clasa World în Greenfoot.

6. Adăugați o Metodă nouă în Fișierul Java al Lumii:

  • Adăugați o metodă simplă, cum ar fi următoarea, care modifică o proprietate a lumii (de exemplu, culoarea fundalului):
import greenfoot.*;

public class NumeleLumii extends World {
    public NumeleLumii() {
        super(600, 400, 1);
        setBackground("background.jpg"); // Setăm imaginea de fundal
    }

    public void schimbaCuloareaFundalului() {
        setBackground("new_background.jpg"); // Modificăm imaginea de fundal
    }
}

7. Invocați Metoda în Metoda act():

  • În aceeași clasă, puteți invoca această metodă în metoda act() sau în oricare altă metodă, în funcție de necesitățile dvs.
import greenfoot.*;

public class NumeleLumii extends World {
    public NumeleLumii() {
        super(600, 400, 1);
        setBackground("background.jpg");
    }

    public void schimbaCuloareaFundalului() {
        setBackground("new_background.jpg");
    }

    public void act() {
        // Alte acțiuni...
        if (Greenfoot.isKeyDown("space")) {
            schimbaCuloareaFundalului(); // Invocăm metoda când se apasă tasta "space"
        }
    }
}

8. Rulează Scenariul:

  • Apăsați butonul “Run” pentru a vedea cum acțiunea de apăsare a tastei “space” invocă metoda care schimbă imaginea de fundal.

Observații:

  • În acest exemplu, am creat o metodă simplă pentru a schimba imaginea de fundal, dar puteți crea și utiliza orice metode specifice ale lumii pentru a gestiona diferite aspecte ale jocului dvs.

Vom dezvolta un exemplu simplificat în care Wombat1 se va deplasa în jurul unui cerc în Greenfoot. Pentru acest exemplu, vom utiliza metoda turn() pentru a-l face să se rotească în jurul punctului central al scenei.

import greenfoot.*;

public class Wombat1 extends Actor {
    private int razaCerc = 100; // Raza cercului

    public void act() {
        deplasareInCerc();
    }

    private void deplasareInCerc() {
        // Obținem poziția actuală a wombatului
        int x = getX();
        int y = getY();

        // Calculăm noi coordonate pentru a se deplasa în jurul cercului
        double radians = Math.toRadians(getRotation()); // Convertim unghiul în radiani
        int newX = x + (int) (razaCerc * Math.cos(radians));
        int newY = y + (int) (razaCerc * Math.sin(radians));

        // Setăm noile coordonate și ajustăm unghiul pentru următoarea cadru
        setLocation(newX, newY);
        setRotation(getRotation() + 1); // Ajustăm unghiul pentru a rota în jurul cercului
    }
}

În acest exemplu:

  • Am definit o variabilă razaCerc care reprezintă raza cercului pe care Wombat1 îl va parcurge.
  • În metoda act(), Wombat1 apelează metoda privată deplasareInCerc().
  • În metoda deplasareInCerc(), folosim trigonometrie pentru a calcula noile coordonate în funcție de unghiul de rotație și raza cercului.
  • Wombat1 se deplasează în jurul cercului prin ajustarea poziției sale la fiecare cadru și rotația constantă.