This site requires JavaScript, please enable it in your browser!
Greenfoot back
sametguzelgun
sametguzelgun wrote ...

2014/7/11

removeObject() method is not working

sametguzelgun sametguzelgun

2014/7/11

#
Hi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import greenfoot.*;
import java.awt.Color;
import java.util.List;
public class Lav extends Actor
{
    private boolean yayilim = true;
    public Lav()
    {
        GreenfootImage resim = new GreenfootImage(20,20);
        resim.setColor(Color.RED);
        resim.fillRect(0,0,20,20);
        setImage(resim);
    }
    public void act()
    {
        if(yayilim == true)
        {
            yayilim();
        }
        else
        {
            getWorld().removeObject(this);
        }
    }
    private void yayilim()
    {
        List sol = getWorld().getObjectsAt(getX() - 1,getY(),Duvar.class);
        List sag = getWorld().getObjectsAt(getX() + 1,getY(),Duvar.class);
        List ust = getWorld().getObjectsAt(getX(),getY() - 1,Duvar.class);
        List alt = getWorld().getObjectsAt(getX(),getY() + 1,Duvar.class);
        if(sol.isEmpty())
        {
            getWorld().addObject(new Lav(),getX() - 1,getY());
        }
        if(sag.isEmpty())
        {
            getWorld().addObject(new Lav(),getX() + 1,getY());
        }
        if(ust.isEmpty())
        {
            getWorld().addObject(new Lav(),getX(),getY() - 1);
        }
        if(alt.isEmpty())
        {
            getWorld().addObject(new Lav(),getX(),getY() + 1);
        }
        yayilim = false;
    }
}
danpost danpost

2014/7/11

#
Are you sure that line 22 is not working? Could it be that it is working, but that you have two empty places (empty of Duvar objects, that is) next to each other and they both are alternating creating Lav objects that are being remove (and replaced)?
sametguzelgun sametguzelgun

2014/7/12

#
Thank you. I solved this problem:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import greenfoot.*;
import java.awt.Color;
import java.util.List;
public class Lav extends Actor
{
    public Lav()
    {
        GreenfootImage resim = new GreenfootImage(20,20);
        resim.setColor(Color.RED);
        resim.fillRect(0,0,20,20);
        setImage(resim);
    }
    public void act()
    {
        yayilim();
        kaldir();
    }
    private void yayilim()
    {
        List sol = getWorld().getObjectsAt(getX() - 1,getY(),null);
        List sag = getWorld().getObjectsAt(getX() + 1,getY(),null);
        List ust = getWorld().getObjectsAt(getX(),getY() - 1,null);
        List alt = getWorld().getObjectsAt(getX(),getY() + 1,null);
        if(sol.isEmpty())
        {
            getWorld().addObject(new Lav(),getX() - 1,getY());
        }
        if(sag.isEmpty())
        {
            getWorld().addObject(new Lav(),getX() + 1,getY());
        }
        if(ust.isEmpty())
        {
            getWorld().addObject(new Lav(),getX(),getY() - 1);
        }
        if(alt.isEmpty())
        {
            getWorld().addObject(new Lav(),getX(),getY() + 1);
        }
    }
    private void kaldir()
    {
        List objeler = getObjectsInRange(0,Lav.class);
        if(!objeler.isEmpty())
        {
            getWorld().removeObject(this);
        }
    }
}
You need to login to post a reply.