Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Allegro collision detection

Name: Anonymous 2010-05-11 12:59

bool Player::collide(int x, int y, BITMAP* object)
{
    for (int px = 0; px < 20; px++)
    {
        for (int py = 0; py < 20; px++)
        {
            if (getpixel(image,px+x,py=y)!=bitmap_mask_color(image))
            {
                if (getpixel(object,xPos+px+x,yPos+py+y)!=bitmap_mask_color(object))
                {
                    return true;
                    break;
                }
            }
        }
    }
    return false;
}

xPos and yPos speak for themselves
x and y are the potential changes to the xPos and yPos, if this method returns false, they will be made.
image is a 20x20px player image.
object is my arena made from a tileset, pieced together by a vector of strings, each character in the vector representing a tile.

However, my player resolutely refuses to fall when gravity tells him to, or the program crashes. Either he's colliding with something (He shouldn't be, he's surrounded by masked squares) or some crazy voodoo is eating my datas.

any ideas?

Name: Anonymous 2010-05-11 17:55

px++
Where did this habit come from, anyway? K&R uses ++var consistently, most compilers output cleaner code for ++var, and 90% of the time the ++ operator is used without checking its return value, so there's no algorithmic reason to use var++ either.
Is it just a way for Sepplers to rebel against the traditional values of reading books and knowing what you're doing?

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List