Вы всё делаете неправильно. Предлагаю вам скачать какой-нить игровой движок (типа Phaser) и писать на нём. А если уж очень хочется упороться и написать свой движок, то нужно начать с написания игрового цикла.
Очень рекомендую
вот эту статью про создание грамотного игрового цикла.
После того как вы разберётесь с тем как устроен игровой цикл я предлагаю вам почитать, что такое вектора. Как задать вектор, как складывать вектора, как вычитать вектора, как нормировать вектор, что такое скалярное произведение векторов, что такое нормаль вектора, как найти угол между двумя векторами, как найти проекцию вектора на прямую и т.п.
Вот
неплохая серия уроков про вектора.
После того как вы познакомитесь с векторами, можно начинать писать определение коллизий между двумя объектами. Для начала реализуйте алгоритм AABB (Axis Aligned Bounding Box), читайте про теорему разделяющих осей. Затем попробуйте реализовать столкновение шара и прямой. После чего попробуйте реализовать столкновение двух шаров.
Вот
серия туториалов (на инглише разумеется) по определению различных столкновений.
Чтобы вы могли быстро обрабатывать столкновения нескольких десятков объкектов вам придётся прочитать про алгоритм
QuadTree. Мне нравится
вот это видео, где мужик неплохо объясняет как оно работает.
После изучения вышеописанных вещей вы будете способны написать игры типа Арканоид, Бильярд.