I'm making space invaders (in OpenGL/SDL) and I'm currently having issues with getting the collisions (box collisions) between the bullets and the enemies to be properly detected. In my ```update()``` function, I have a nested for loop which iterates through all of entities (for each bullet) detecting if each bullet has collided with it. To do this, I have a function ```checkCollision()``` in which I'm calculating the dimensions of each enemy and bullet that gets passed in and then checking if the "boxes" for each entity are intersecting: **Function for checking collisions** bool checkCollision(Enemy* anEnemy, Bullet* aBullet) { float enemyTop = anEnemy->y + (anEnemy->height / 2.0f); float enemyBottom = anEnemy->y - (anEnemy->height / 2.0f); float enemyRight = anEnemy->x + (anEnemy->width / 2.0f); float enemyLeft = anEnemy->x - (anEnemy->width / 2.0f); float bulletTop = aBullet->y + (aBullet->height / 2.0f); float bulletBottom = aBullet->y - (aBullet->height / 2.0f); float bulletLeft = aBullet->x - (aBullet->width / 2.0f); float bulletRight = aBullet->x + (aBullet->width / 2.0f); //This is supposed to check that if the objects are not intersecting, return false if ( (bulletBottom > enemyTop) || (bulletTop < enemyBottom) || (bulletLeft > enemyRight) || (bulletRight < enemyLeft) ) { return false; } else { return true; } } **Code to check collisions for each enemy in update function** //Check if each of the bullets has hit any of the enemies for (int i = 0; i < bullets.size(); i++) { for (int j = 0; j < entities.size(); j++) { if (entities[j] != nullptr && bullets[i] != nullptr) { if (checkCollision(entities[j], bullets[i])) { std::cout << "bullets y position: " << bullets[i]->y << std::endl; std::cout << " hit enemy y position: " << entities[j]->y << std::endl; std::cout << "bullets x position: " << bullets[i]->x << std::endl; std::cout << " hit enemy x position: " << entities[j]->x << std::endl; delete entities[j]; entities[j] = nullptr; delete bullets[i]; bullets[i] = nullptr; } } } } For some reason, when the bullet it shot from the spaceship (player), the collisions are detected before the bullet even reaches the enemy on the screen and I get the following console output: bullet y position: 0.610021 enemy y position: 1.85 bullet x position: 0 enemy x position: -1.0335 **How should I be structuring the collision detection differently so that the objects are actually intersecting before the collision is detected?**