Help with selecting objects on a map
        Posted  
        
            by 
                Dave
            
        on Game Development
        
        See other posts from Game Development
        
            or by Dave
        
        
        
        Published on 2012-03-20T21:23:10Z
        Indexed on 
            2012/03/20
            23:40 UTC
        
        
        Read the original article
        Hit count: 193
        
JavaScript
I have a object selection function by checking the mouse click and getting the relevant object.
How ever there is a rare situation where if one object is partially behind the other then both objects are in the given area so im wondering how i can make the game know which one was selected, as currently my method does not know.
This is my function that works it out:
function getobj(e){
mx = e.pageX - curleft; //mouse click x
my = e.pageY - curtop; //mouse click y
function searchSprites(sprites, x, y) {
    var matches = [],
        i = 0,
        data = null;
    for (i = 0; i < spritea.length; ++i) {
        data = spritea[i].data;
        if (x > data[0] && y > data[1] && x < data[2] && y < data[3]) {     
        var imageData = ctx2.getImageData(x, y, 1, 1);
        if(imageData.data[3] !== 0){
        return [spritea[i].id];
        i = spritea.length;     
            }
        }
    }
}
res = searchSprites(spritea, mx, my);
bid = res[0];
if(bid === '1'){
alert('You selected the skyscraper in front!');
    }else if(bid === '3'){
alert('You selected the skyscraper behind!');
    }
}
Image of the map: http://i.imgur.com/qcKij.jpg
It keeps telling me i clicked the skyscraper behind which is not necessarily what the user is trying to do... how can i improve the accuracy of this ?
© Game Development or respective owner