У вас в коде написано не то, что вы привели в вопросе. У вас так:
makeSolid(object1, object2)
{
if(this.collisionDetectedBetween(object1, object2) && object1.x > object2.x - object2.width && object1.x < object2.x)
{
if(!this.collisionDetectedBetween(object1, object2))
object1.x = object2.x - object2.width;
}
if(this.collisionDetectedBetween(object1, object2) && object1.x < object2.x + object2.width && object1.x > object2.x)
{
if(!this.collisionDetectedBetween(object1, object2))
object1.x = object2.x + object2.width;
}
if(this.collisionDetectedBetween(object1, object2) && object1.y < object2.y + object2.height && object1.y > object2.y)
{
if(!this.collisionDetectedBetween(object1, object2))
object1.y = object2.y + object2.height;
}
if(this.collisionDetectedBetween(object1, object2) && object1.y > object2.y - object2.height && object1.y < object2.y)
{
if(!this.collisionDetectedBetween(object1, object2))
object1.y = object2.y - object2.height;
}
}
(Взято с гитхаба)
Это, конечно же, работать не будет.
Вот так все работает:
makeSolid(object1, object2) {
if (!this.collisionDetectedBetween(object1, object2)) return;
if(object1.x > object2.x - object2.width && object1.x < object2.x) {
object1.x = object2.x - object2.width;
}
if(object1.x < object2.x + object2.width && object1.x > object2.x) {
object1.x = object2.x + object2.width;
}
if(object1.y < object2.y + object2.height && object1.y > object2.y) {
object1.y = object2.y + object2.height;
}
if(object1.y > object2.y - object2.height && object1.y < object2.y) {
object1.y = object2.y - object2.height;
}
}
Замечаний по коду делать не буду, он просто плох. И то, что вы не можете найти простые ошибки в своем же коде - тому доказательство. Советую поработать над этим.