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

2012/5/30

getOneObjectAtOffset help

ChrisM ChrisM

2012/5/30

#
Hi, I am making a bomberman game that uses 2D Array of tiles for collision detection. Here is my collision detection code:
    public void checkCollision()
    {
        if (getOneObjectAtOffset(0,25,BreakableTiles.class)!=null)
        {
            moveUp = false;
        }
        else if (getOneObjectAtOffset(0,25,Boarder.class)!=null)
        {
            moveUp = false;
        }
        else if (getOneObjectAtOffset(0,25,StoneTiles.class)!=null)
        {
            moveUp = false;
        }
        else
        {
            moveUp = true;
        }

        if (getOneObjectAtOffset(25,0,BreakableTiles.class)!=null)
        {
            moveRight = false;
        }
        else if (getOneObjectAtOffset(25,0,Boarder.class)!=null)
        {
            moveRight = false;
        }
        else if (getOneObjectAtOffset(25,0,StoneTiles.class)!=null)
        {
            moveRight = false;
        }
        else
        {
            moveRight = true;
        }

        if (getOneObjectAtOffset(0,-25,BreakableTiles.class)!=null)
        {
            moveDown = false;
        }
        else if (getOneObjectAtOffset(0,-25,Boarder.class)!=null)
        {
            moveDown = false;
        }
        else if (getOneObjectAtOffset(0,-25,StoneTiles.class)!=null)
        {
            moveDown = false;
        }
        else
        {
            moveDown = true;
        }

        if (getOneObjectAtOffset(-25,0,BreakableTiles.class)!=null)
        {
            moveLeft = false;
        }
        else if (getOneObjectAtOffset(-25,0,Boarder.class)!=null)
        {
            moveLeft = false;
        }
        else if (getOneObjectAtOffset(-25,0,StoneTiles.class)!=null)
        {
            moveLeft = false;
        }
        else
        {
            moveLeft = true;
        }
    }
The moveLeft and moveRight booleans are being assigned correctly, but the moveUp and moveDown booleans are not being assigned the way I want to in my scenerio :/
ELInquisator ELInquisator

2016/12/16

#
This is pretty simple. Graphical systems like Greenfoot have an inverted y axis. That way saying the offset is 25 means you were testing 25 units below the object. So you just have to change the offset from -25 to 25 and do the reverse thing for the down site.
If (getOneObjectAtOffset(0,25,Boarder.class)!=null)// just repeat this concept over your entired code ;)
{
         moveDown = false;
}
Thats all you have to do I think. I hope I could help. ;P
You need to login to post a reply.