cool thx this code works
vector <Sprite> sprites;
sprites.push_back(Sprite(1900, 725));
sprites.push_back(Sprite(2005, 725));
int dragSpriteIndex = -1;
// Sprite sprites;
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;
dragSpriteIndex = -1;
for (int i = 0; i < (int)sprites.size(); i++)
{
Sprite &sprite = sprites[i];
if (prevX >= sprite.x&&prevX <= sprite.x + 45 && prevY >= sprite.y&&prevY <= sprite.y + 45)
{
dragSpriteIndex = i;
break;
}
}
}
else if (event.type == SDL_MOUSEBUTTONUP && event.button.button == SDL_BUTTON_LEFT)
{
dragSpriteIndex = -1;
}
else if (event.type == SDL_MOUSEMOTION && dragSpriteIndex != -1)
{
Sprite &sprite = sprites[dragSpriteIndex];
deltaX = event.motion.x - prevX;
deltaY = event.motion.y - prevY;
prevX = event.motion.x;
prevY = event.motion.y;
sprite.x += deltaX;
sprite.y += deltaY;
}
SDL_Rect rect;
rect.x = 2005;
rect.y = 725;
SDL_BlitSurface(gHelloWorld_one, NULL, gScreenSurface, &rect);
SDL_Rect rect_one;
rect_one.x = sprites[1].x;
rect_one.y = sprites[1].y;
SDL_BlitSurface(gHelloWorld_two, NULL, gScreenSurface, &rect_one);
SDL_Rect rect_two;
rect_two.x = sprites[0].x;
rect_two.y = sprites[0].y;
SDL_BlitSurface(gHelloWorld_one, NULL, gScreenSurface, &rect_two);
SDL_UpdateWindowSurface((gWindow));
}