Mysz i klawiatura chyba będą podobne. Różnica będzie taka, że będziesz sprawdzał, czy przyciski klawiatury są wciśnięte lub pozycję myszy.
Co do kolizji, to musisz mieć pozycję i wymiary obu kwadratów i sprawdzać, czy przypadkiem one nie zachodzą na siebie. Niedawno napisałem taki warunek do swojej gry i powinien działać też u ciebie, o ile to rzeczywiście będą kwadraty lub prostokąty.
#include <math.h>
if(abs(square1.pos.Y - square2.pos.Y) <
SQUARE_2_HEIGHT / 2 + SQUARE_2_WIDTH / 2 &&
abs(square1.pos.X - square2.pos.X) <
SQUARE_2_WIDTH / 2 + SQUARE_1_WIDTH / 2)
{
somethingStrange();
}