1

Hello I'm making a game for my CS class using JavaScript. I know how to ale objects collide with each other in the canvas but I m trying to get an object to detect if it's completely inside another object

If (object1.xcoord > object2.xcoord 
     && object1.xcoord + object1.width < object2.xcoord + object2.width 
     && object1.ycoord + object1.height < object2.ycoord +object2.height) {
  alert("hi")
}

Note I only need those three sides it doesn't matter to me if object 1 is within top side of object 2

Also is it possible to only use comparisons like < or > and not anything else

2
  • What shape is it, and are both of them the same shape? Commented Dec 3, 2016 at 7:36
  • @Viliami both are rectangles Commented Dec 3, 2016 at 7:36

1 Answer 1

4
//both height and width need to be smaller than the containing objects height
//and width.
if(obect1.width < object2.width && object1.height < object2.height){
    //check if right side x of object1 is less than right side x of object2
    //and check if bottom y of object1 y is less than bottom y of object2
    //and check if left x of object1 is greater than left side x of object2
    //and check if top y of object1 is greater than top y of object2
    if(object1.x+object1.width < object2.x+object2.width 
    && object1.y+object1.height < object2.y + object2.height
    && object1.x > object2.x && object1.y > object2.y){
        return True;
    }
}
return False;
Sign up to request clarification or add additional context in comments.

1 Comment

Thank you for your answer but your code only checks to make sure the bottom side and the right side. The code still returns true even if object 1 is to the left of object 2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.