Вы не говорите, если это в 2D или 3D, или какие методы вы собираетесь использовать.
Если вы реализуете игру с использованием OpenGL, это довольно просто.Объект может быть составлен из обычной сетки с изображением в виде текстуры, сопоставленной с сеткой.Когда пользователь ударяет по объекту, вы просто деформируете сетку.
Простой способ - взять вектор в направлении удара, сместить ближайшую вершину на величину, пропорциональную силе удара,и затем разветвления, чтобы деформировать остальную часть сетки в уменьшающихся количествах.Деформируя сетку, текстура изображения будет визуализироваться со всеми вмятинами или деформациями, которые вам нравятся.
Если вы хотите сделать это без OpenGL и просто прямых изображений, вы можете использовать повторную выборку изображений для имитации эффекта.У вас есть исходное нетронутое изображение, которое «фильтруется», чтобы составить полученное изображение.Сначала нет никаких деформаций, поэтому вы копируете оригинальное изображение дословно.Каждый раз, когда пользователь нажимает на объект, вы можете добавить деформацию, используя фильтр, или преобразовать в интересующую вас локальную область.Эта функция будет искажать исходное изображение искаженным образом, в результате чего оно будет выглядеть так, как будто объект поврежден.
Если вы посмотрите несколько хороших книг по разработке игр, вы найдете большой выбор подходов к объекту.столкновения, деформации и пр.