Skip to content

6. Faceți obiectele să acționeze

Pentru a face obiectele să acționeze în scenariul Greenfoot, trebuie să le programați comportamentul în codul sursă al actorilor respectivi. Vom lua exemplul Wombat1 și Wombat2 din scenariul “The Wombats” și vom adăuga comportament acționabil pentru acești actori.

Wombat1: Mișcare Interactivă

Deschideți fișierul “Wombat1.java” și adăugați sau modificați metoda act() pentru a permite mișcarea interactivă a Wombat1.

import greenfoot.*;

public class Wombat1 extends Actor {
    public void act() {
        move(3);
        if (Greenfoot.isKeyDown("left")) {
            turn(-5);
        }
        if (Greenfoot.isKeyDown("right")) {
            turn(5);
        }
        if (Greenfoot.isKeyDown("space")) {
            // Adăugați aici acțiunile atunci când tasta "space" este apăsată
        }
    }
}

În acest exemplu, Wombat1 se va mișca înainte la o viteză constantă. Dacă se apasă tastele stânga sau dreapta, Wombat1 se va roti corespunzător. De asemenea, este verificată dacă tasta “space” este apăsată, moment în care puteți adăuga acțiuni suplimentare.

Wombat2: Coliziuni și Comportament la Margine

Deschideți fișierul “Wombat2.java” și adăugați sau modificați metoda act() pentru a gestiona coliziunile și comportamentul la margine.

import greenfoot.*;

public class Wombat2 extends Actor {
    public void act() {
        move(2);
        if (Greenfoot.isKeyDown("up")) {
            setLocation(getX(), getY() - 2);
        }
        if (Greenfoot.isKeyDown("down")) {
            setLocation(getX(), getY() + 2);
        }
        if (isAtEdge()) {
            turn(180);
        }
        if (isTouching(Wombat1.class)) {
            // Adăugați aici acțiunile atunci când Wombat2 intră în coliziune cu Wombat1
            // Exemplu: removeObject(Wombat1);
        }
    }
}

În acest exemplu, Wombat2 se va mișca înainte și poate fi deplasat vertical cu tastele “up” și “down”. Dacă ajunge la marginea scenariului, se va întoarce cu 180 de grade. De asemenea, verificăm dacă Wombat2 intră în coliziune cu Wombat1 și putem adăuga acțiuni suplimentare în acest caz.

Aceste exemple demonstrează cum puteți programa obiectele să reacționeze la evenimente, cum ar fi apăsarea tastelor sau coliziunile cu alte obiecte în scenariul Greenfoot.