Objekte in Greenfoot löschen

Motte001

Cadet 4th Year
Registriert
Dez. 2012
Beiträge
112
Hallo,
ich muss das Brettspiel Dame in Greenfoot programmieren. Ich habe bisher folgendes realisiert: Wenn mann einen Stein anklickt, erscheinen zwei Markierungen, wohin der Stein ziehen kann. Wenn man dann eine der beiden Markierungen anklickt, wird DIESE (und leider auch nur diese) Markierung gelöscht und der Stein verschoben, allerdings bleibt die andere Markierung vorhanden. Wie kann ich die löschen?


Klasse M (Markierung):
Code:
import greenfoot.*;  //Welt, Actor, GreenfootImage, Greenfoot und MouseInfo
import java.util.*;

public class M extends Actor
{
    public void act() 
    {
        if(Greenfoot.mouseClicked(this) == true) //Wenn auf ein Objekt von M geklickt wird. 
        {
            int x = getX(); //Speichert die X-Koordinate des Objekts in der Variable x
            int y = getY(); //Speichert die Y-Koordinate des Objekts in der Variable y

            World w = getWorld(); //Ruft die Welt auf
            w.addObject(new spieler1(), x, y); //Erzeugt Spielfigur

            getWorld().removeObject(this); //Löscht angeklickte Markierung
            
        }
    }    
}


Klasse für Spieler 1:
Code:
import greenfoot.*;  //Welt, Actor, GreenfootImage, Greenfoot und MouseInfo
import java.util.List;
import java.util.ArrayList;

public class spieler1 extends Actor
{  
    public void act() 
    {
        if(Greenfoot.mouseClicked(this) == true) //Wenn auf ein Objekt von Spieler1 geklickt wird. 
        {
            int x = getX(); //Speichert die X-Koordinate des Objekts in der Variable x
            int y = getY(); //Speichert die Y-Koordinate des Objekts in der Variable y

            World w = getWorld(); //Ruft die Welt auf

            w.addObject(new M(), x+1, y+1); //Erzeugt Markierung
            w.addObject(new M(), x-1, y+1); //Erzeugt Markierung

            getWorld().removeObject(this); //Löscht angeklickte Spielfigur
        }
    } 
}

Und die Welt:
Code:
import greenfoot.*;  //Welt, Actor, GreenfootImage, Greenfoot und MouseInfo

public class Schachbrett extends World
{
    public Schachbrett()
    {    
        super(8, 8, 50, false); // Erstellt eine Welt mit 8x8 Zellen und einer Zellgröße von 50x50. Die Objekte können die Welt auf den Seiten verlassen.
        Greenfoot.setSpeed(100); // Setzt die Geschwindigkeit auf 100.
        newGame(); //Ruft Klasse newGame() auf und erzeugt somit die Spielfiguren
    }

    public void newGame()
    {
        spieler1 s1 = new spieler1(); // Erstellt alle Spielfiguren
        addObject(s1, 1, 0);

        spieler1 s2 = new spieler1();
        addObject(s2, 3, 0);

        spieler1 s3 = new spieler1();
        addObject(s3, 5, 0);

        spieler1 s4 = new spieler1();
        addObject(s4, 7, 0);

        spieler1 s5 = new spieler1();
        addObject(s5, 0, 1);

        spieler1 s6 = new spieler1();
        addObject(s6, 2, 1);

        spieler1 s7 = new spieler1();
        addObject(s7, 4, 1);

        spieler1 s8 = new spieler1();
        addObject(s8, 6, 1);

        spieler1 s9 = new spieler1();
        addObject(s9, 1, 2);

        spieler1 s10 = new spieler1();
        addObject(s10, 3, 2);

        spieler1 s11 = new spieler1();
        addObject(s11, 5, 2);

        spieler1 s12 = new spieler1();
        addObject(s12, 7, 2);        

        spieler2 s17 = new spieler2();
        addObject(s17, 0, 5);

        spieler2 s18 = new spieler2();
        addObject(s18, 2, 5);

        spieler2 s19 = new spieler2();
        addObject(s19, 4, 5);

        spieler2 s20 = new spieler2();
        addObject(s20, 6, 5);

        spieler2 s21 = new spieler2();
        addObject(s21, 1, 6);

        spieler2 s22 = new spieler2();
        addObject(s22, 3, 6);

        spieler2 s23 = new spieler2();
        addObject(s23, 5, 6);

        spieler2 s24 = new spieler2();
        addObject(s24, 7, 6);

        spieler2 s25 = new spieler2();
        addObject(s25, 0, 7);

        spieler2 s26 = new spieler2();
        addObject(s26, 2, 7);

        spieler2 s27 = new spieler2();
        addObject(s27, 4, 7);

        spieler2 s28 = new spieler2();
        addObject(s28, 6, 7);
    } 
}


Klasse für Spieler 2 noch leer.
 
Zuletzt bearbeitet: (Quellcode mit Anmerkungen ergänzt)
Zurück
Oben