Well after much studying and many hours of work I finally solved my sprite movement problem. here is my updated code
bool isDragging = false;
int objectX = 1900, objectY = 725;
int prevX=0, prevY=0;
bool quit = false;
int deltaX = 0, deltaY = 0;
while (quit == false) {
SDL_BlitSurface(gHelloWorld, NULL, gScreenSurface, NULL);
SDL_Event event;
while (SDL_PollEvent(&event)) {
if (event.type == SDL_KEYDOWN)
{
Uint8 const* keys = SDL_GetKeyboardState(nullptr);
if (keys[SDL_SCANCODE_ESCAPE] == 1)
quit = true;
}
else if (event.type == SDL_MOUSEBUTTONDOWN && event.button.button == SDL_BUTTON_LEFT)
{
prevX = event.button.x;
prevY = event.button.y;
if(prevX>=objectX&&prevX<=objectX+45 && prevY>=objectY&&prevY<=objectY+45)
isDragging = true;
}
else if (event.type == SDL_MOUSEBUTTONUP && event.button.button == SDL_BUTTON_LEFT)
{
isDragging = false;
}
else if (event.type == SDL_MOUSEMOTION && isDragging)
{
deltaX = event.motion.x -prevX;
deltaY = event.motion.y -prevY;
cout << prevX << " " << prevY << " " << event.motion.x << " " << event.motion.y << endl;
prevX = event.motion.x;
prevY = event.motion.y;
objectX += deltaX;
objectY += deltaY;
}
SDL_Rect rect;
rect.x = 2005;
rect.y = 725;
SDL_BlitSurface(gHelloWorld_one, NULL, gScreenSurface, &rect);
SDL_Rect rect_one;
rect_one.x = 2010;
rect_one.y = 725;
SDL_BlitSurface(gHelloWorld_two, NULL, gScreenSurface, &rect_one);
SDL_Rect rect_two;
rect_two.x = objectX;
rect_two.y = objectY;
SDL_BlitSurface(gHelloWorld_one, NULL, gScreenSurface, &rect_two);
SDL_UpdateWindowSurface((gWindow));
}