Tworzę program w SDL2, ale jeżeli ktoś nie zna tej biblioteki to nic, ponieważ chodzi tu o logiczny problem.
Napisałem kod, dzięki któremu za pomocą myszy przesuwam grafikę na ekranie. Obrazek renderuje się z koordynatami takimi jakie ma kursor myszy gdy naciśniemy LPM. Cel, który chce osiągnąć to przenoszenie tego obrazka o wielokrotność liczby 40 (w pikselach) (albo dowolnej liczby to nie ma znaczenia).
Na przykład mam obrazek na x=0 i przesuwam myszkę w prawo to nasz obrazek przesunie się od razu na x = 40, gdy kursor myszy tam dojdzie.
Aktualny kod wygląda w ten sposób. Myślę że jedyne co trzeba dodać to w funkcji myszka.
if(zdarzenie.type == SDL_MOUSEBUTTONDOWN) klik = true;
if(zdarzenie.type == SDL_MOUSEBUTTONUP) klik = false;
if(zdarzenie.type==SDL_MOUSEMOTION)
{
if(klik==true)
{
int n,m;
SDL_GetMouseState(&n,&m);
myszka(n,m);
}
}
void myszka(int x, int y)
{
if(x>postac.x&&x<postac.x+40&&y>postac.y&&y<postac.y+40)
{
postac.x = x-20;
postac.y = y-20;
}
}
Próbowałem już różne pętle z modulo itp, ale przenoszenie w ogóle nie działa. Proszę o pomoc w rozwiązaniu tego logicznego problemu.